1

我想在我的 Android 应用程序中隐藏导航栏。我写了以下课程:

import android.view.View;

public class NavigationUtils {
    private NavigationUtils() {
    }

    public static void hideNavigation(View decorView) {
        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);
    }
}

当我在方法中调用这个方法时onResume(),导航栏是隐藏的。此外,在我的主要活动onCreate()方法中,我使用了以下代码:

    View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener
            (new View.OnSystemUiVisibilityChangeListener() {
                 @Override
                 public void onSystemUiVisibilityChange(int visibility) {
                     if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                         NavigationUtils.hideNavigation(getWindow().getDecorView());
                     }
                 }
             }
            );

当我单击 EditText 时,软键盘和导航栏都会打开。使用上面的代码,当软键盘关闭时导航栏再次隐藏。这在主要活动中效果很好。

现在我从主要活动开始了另一个活动onCreate(),并在上面的方法中添加了相同的代码。

但是现在当我在新活动中退出软键盘(编辑 EditText 后)时,导航栏不再隐藏。

我能做些什么?

编辑:这两个活动的清单中的条目如下:

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation"
        android:screenOrientation="landscape">
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".SensorReadingsActivity"
        android:screenOrientation="landscape" />
4

0 回答 0