我正在为盲人用户创建一个 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
}