我正在为盲人用户创建一款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的应用程序中包含上述调用,而不会引发错误,因此在最近的手机上不需要弹性带。
我查看了this question,但我不太确定如何在准确的Hello World项目中应用MainActivity
方法的建议答案。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// etc
}
}
EDIT
这是我修改过的代码,现在适用于我:
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
}