我想,当我把我的设备景观被隐藏我的标题栏。 我已经看到了XML选项可以隐藏标题栏,程序做它的下面的例子:
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
但我使用configChanges
的参数orientation
和screenSize
,因此不重新创建我的活动时再次定向景观(我这样做是因为某些原因)。 因此,作为这些调用前需要进行我不能用上述方法setContentView()
所以任何想法? 谢谢。
为寻找答案,在这里结束了,把碎片一起,在这里,他们是:
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
假设您已经定义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()
如果使用的是支持库。
首先使用下面的代码检查设备方向
当前配置,如用于确定要检索的资源等,如可从资源配置对象:
getResources().getConfiguration().orientation
然后做隐藏标题栏和通知栏相关的必要的编码。
在你的“AndroidManifest.xml中”,在活动标签,你可以在主题属性指定“NoTitleBar”,这样它总是隐藏标题:
<activity
android:name="com.my_package.MyActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="navigation|orientation|screenLayout|layoutDirection">