当设备面向横向时,隐藏标题栏/通知栏

时间:2012-08-08 02:33:08

标签: java android titlebar device-orientation

当我将设备转换为横向时,我希望隐藏我的标题栏。我已经看到了用于隐藏标题栏的XML选项,以及以下以编程方式执行此操作的示例:

//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

但是,我正在使用configChangesorientation的{​​{1}}参数,所以我的活动在面向横向时不再重新创建(我正在为某些人做这个原因)。所以我不能使用上述方法,因为这些调用需要在screenSize之前进行。

那么任何想法?谢谢。

5 个答案:

答案 0 :(得分:13)

正在寻找答案,最后来到这里,将各个部分放在一起,这里是:

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
else {
  getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

答案 1 :(得分:7)

假设您已为清单中的configChanges定义Activity,那么您可以实现覆盖onConfigurationChanged方法的问题:

@Override
public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);
     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
          getActionBar().hide();
     } else {
          getActionBar().show();
     }
}

如果使用支持库,则必须使用getSupportActionBar()而不是getActionBar()

答案 2 :(得分:3)

首先使用以下代码检查您的设备方向

当前配置,用于确定要检索的资源等,可从资源的配置对象中获取:

getResources().getConfiguration().orientation

然后执行与隐藏标题栏和通知栏相关的必要编码。

答案 3 :(得分:0)

@Override
public void onConfigurationChanged(Configuration config) {
     super.onConfigurationChanged(config);
     if(config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
          getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
          getActionBar().hide();
     } else {
          getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
          getActionBar().show();
     }
}

你可以使用我自己试过的。

答案 4 :(得分:-1)

在您的" AndroidManifest.xml"中,您可以在活动代码中指定" NoTitleBar"在主题属性中,它将始终隐藏标题:

<activity
    android:name="com.my_package.MyActivity" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:configChanges="navigation|orientation|screenLayout|layoutDirection">