java - Android 全屏只有一个 Activity ?

标签 java android

我的应用有 3 个 Activity (activity_main、activity_one、activity_two)。 我只想全屏显示第一个 Activity ,所以我搜索了一下,发现我必须使用这个:

 View decorView = getWindow().getDecorView();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

当我转到非全屏的其他 Activity 并按后退按钮返回主 Activity 时,主页按钮后退按钮隐藏在我的主要 Activity 的底部。我该如何解决这个问题? 另外,如果可能的话,我想知道如何让我的 Activity 全屏显示但保留操作栏。 编辑: 我要求全屏显示一个 Activity 而不是其他两个(除非操作栏保留)。如果我继续 activity_two(不是全屏)我有主页按钮后退按钮等。如果我按下后退按钮然后回到主要 Activity ,按钮留在那儿,我不想这样做(不仅因为我想要我的主全屏,而且因为 Activity 二的按钮留在并隐藏我主要 Activity 的底部)

最佳答案

因为 onWindowsFocusChanged() 是您所需要的,所以试试这个:

1.首先,在您的 MainActivity 中将此变量声明为全局变量

private int currentApiVersion;

2. 然后将此代码粘贴到该 Activity 的 onCreate() 中。

currentApiVersion = Build.VERSION.SDK_INT;
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
if (currentApiVersion >= Build.VERSION_CODES.KITKAT) {
    getWindow().getDecorView().setSystemUiVisibility(flags);
    final View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
          @Override
          public void onSystemUiVisibilityChange(int visibility) {
              if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                   decorView.setSystemUiVisibility(flags);
              }
          }
    });
}

3。现在将此方法粘贴到您的 MainActivity 类中。

@SuppressLint("NewApi")
@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (currentApiVersion >= Build.VERSION_CODES.KITKAT && hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
               View.SYSTEM_UI_FLAG_LAYOUT_STABLE
             | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
             | View.SYSTEM_UI_FLAG_FULLSCREEN
             | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
             | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
 }

现在应该可以了,试一试。

关于java - Android 全屏只有一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124248/

相关文章:

java - 安卓程序无法运行

java - Solr-并发提交时OverlappingFileLockException

android - 在 Android NDK 中使用 linux 命令

java - 使用 exe4J 运行时滚动 SWT 表很慢

java - “Cannot find symbol”或 “Cannot resolve symbol”错误是什么意思?

android - 在onCreate中定义onClick方法

android - 如何禁用从/到 EditText/TextView 的复制/粘贴

java - 适用于 Android 的 BBC iPlayer 广播应用程序 - 滚轮导航

android - 以编程方式在谷歌地图android中设置从位置到当前位置

java - 如何在 log4j2 文件名中使用当前日期模式?