调节系统栏
项目过程中或多或少需要调节系统状态栏或者需要调节系统导航栏,如下将指引如何修改
你可以通过使用 SYSTEM_UI_FLAG_LOW_PROFILE标记调节状态栏和通知栏 如下
View decorView = getWindow().getDecorView(); int options = View.SYSTEM_UI_FLAG_LOW_PROFILE; decorView.setSystemUiVisibility(options ); 在activity中调用getWindow()方法获取到window对象,接着再通过getDecorView()获取window上层的view视图
接着调用setSystemUiVisibility()相应的参数即可
如果不想设置如上的标记,可通过如下方法 进行清除标记
View decorView = getActivity().getWindow().getDecorView();
decorView.setSystemUiVisibility(0);
隐藏状态栏
1、状态栏显示
2、状态栏隐藏
android版本4.0以及4.0以下的隐藏方法
你可以通过设置application的主题样式 如下
<application ... android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" > ... </application>
或者你可以通过代码实现
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
setContentView(R.layout.activity_main);
}
}
android版本4.1以及4.1以上的隐藏方法
View decorView = getWindow().getDecorView(); int options = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(options ); // 以下为隐藏标题栏 ActionBar actionBar = getActionBar(); actionBar.hide();
android内容显示在状态栏后面
View decorView = getWindow().getDecorView();
int options = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(options );
隐藏导航栏
你可以使用SYSTEM_UI_FLAG_HIDE_NAVIGATION标记隐藏导航栏 如下
View decorView = getWindow().getDecorView(); // 同时隐藏导航栏以及状态栏 int options = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(options );
让内容显示在导航栏后面
View decorView = getWindow().getDecorView(); // 同时隐藏导航栏以及状态栏
int options = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE ; decorView.setSystemUiVisibility(options );
启用全屏模式
以下代码显示如何隐藏和显示活动中的状态栏和导航栏,而不根据不断变化的屏幕空间调整布局:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
hideSystemUI();
}
}
private void hideSystemUI() {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE
// 设置内容在状态栏下面
| 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);
}
// 显示所有系统栏通过移除所有标记
private void showSystemUI() {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}