1

我正在为盲人用户创建一个 Android 应用程序。一个可用性问题是他们的手指倾向于触摸导航栏中的后退按钮,他们突然发现自己离开了应用程序。

在 Android 4.4 KitKat 及更高版本中,我可以使用...

  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_HIDE_NAVIGATION // hide nav bar
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

...隐藏导航栏。(在早期版本中,我可以建议用户在手机周围放一条粗松紧带来隐藏导航栏。)

我想将上述调用包含在与 API 2.2 Froyo 兼容的应用程序中,而不会引发错误,因此在更新的手机上不需要使用松紧带。

我已经看过这个问题,但我不太确定如何将建议的答案应用于MainActivity 准系统 Hello World 项目中的方法。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // etc
    }
}

编辑
这是我修改后的代码,现在对我有用:

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Hide:
        // * the topmost bar with the time, date, charge, carrier and other information
        // * the bar than shows the app logo and title

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            requestWindowFeature(Window.FEATURE_NO_TITLE);

        } else {
            // On API 19 KitKat 4.4. also hide
            // * the Navigation bar that will appear at bottom or right of screen.
            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_HIDE_NAVIGATION // hide nav bar
                            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    // MORE CODE
}
4

0 回答 0