【发布时间】:2016-03-10 11:39:09
【问题描述】:
您好,我正在尝试使用以下代码从我的应用中删除标题栏:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
在活动中的 onCreate 方法下,但是当我运行应用程序时它会出错并关闭(很抱歉,我不知道如何查看错误日志)。
为什么会报错?谢谢
【问题讨论】:
您好,我正在尝试使用以下代码从我的应用中删除标题栏:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
在活动中的 onCreate 方法下,但是当我运行应用程序时它会出错并关闭(很抱歉,我不知道如何查看错误日志)。
为什么会报错?谢谢
【问题讨论】:
你必须在setContentView()之前调用requestWindowFeature(Window.FEATURE_NO_TITLE);。
@Override
protected void onCreate(
final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
}
如果要删除标题,只需将此样式添加到清单文件中即可。
android:theme="@style/Theme.Black.NoTitleBar"
【讨论】:
在setContentView()之前添加requestWindowFeature(Window.FEATURE_NO_TITLE);
喜欢:
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity);
【讨论】:
您有两种方法可以做到这一点:
Activity 而不是Appcompactactivity。或者
Appcompactactivity,则添加getActionBar.hide() 而不是requestWindowFeature(Window.FEATURE_NO_TITLE);
希望这会对你有所帮助。
【讨论】:
试试这个
在 setcontentview 之前写下这行,你的活动将是全屏的
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
【讨论】:
解决方案 1。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getSupportActionBar() != null) {
getSupportActionBar().hide();
}
setContentView(R.layout.activity_main);
}
解决方案 2。
可能问题出在您的应用主题上。因此,请检查您的活动类型(Appcompact Activity、ListActivity),取决于活动更改主题,如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.No_Title_AppTheme);
}
在 style.xml 中:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<style name="No_Title_AppTheme" parent="android:Theme.Light.NoTitleBar">
</style>
</resources>
【讨论】: