How to hide the title bar for an Activity in XML with existing custom theme
我想隐藏一些活动的标题栏。 问题是我将一个样式应用于我的所有活动,因此我不能简单地将主题设置为@android:style/Theme.NoTitleBar。
使用NoTitleBar主题作为我的样式的父级将从我的所有活动中删除标题栏。
我可以在某处设置无标题样式项吗?
在onCreate()方法中执行此操作。
1 2 3 4 5 6 7 8
| //Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//set content view AFTER ABOVE sequence (to avoid crash)
this.setContentView(R.layout.your_layout_name_here); |
this指的是Activity。
-
很好的答案。您不必同时执行这两项操作,删除通知栏可能会有点过分。
-
一定要把它放在调用setContentView(R.id.x)之前,否则会崩溃。原因并不是我立即明白的。 08-13 12:47:33.561 E / AndroidRuntime(9125):java.lang.RuntimeException:无法启动活动ComponentInfo {com.myapp / com.myapp.SplashActivity}:android.util.AndroidRuntimeException:requestFeature()必须被调用在添加内容之前
-
您应该提到当使用requestWindowFeature()时,如果在添加任何内容后执行此行,则会发生强制关闭。另外,XML方法更安全,它还将页面结构与代码分开(这首先是XML的全部目的。)
-
XML / theme方法较差,因为它会重置应用程序的整个主题。即,如果你在使用蜂窝+,做其他人建议的android:theme会将你的整个应用程序的主题重置为非全息。
-
很棒的答案[+1] ....有一件事我必须像这样来解决我的问题.... this.requestWindowFeature((int)Window.FEATURE_NO_TITLE);
-
它让我的应用程序立即崩溃。 :(
-
在Marshmallow上使用此解决方案,并且在活动完全加载之前屏幕上的标题闪烁。
-
使用API?? 22时这不起作用。我仍然会在应用程序启动时看到标题栏。
-
如果您的活动扩展Activity Not AppCompatActivity,即您的类应声明为公共类myActi extends Activity {}
您可以修改AndroidManifest.xml:
1 2 3
| <activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> |
如果您不需要全屏活动,请使用android:theme="@android:style/Theme.Black.NoTitleBar"。
注意:如果您之前使用过"默认"视图,则可能还应将父类从AppCompatActivity更改为Activity。
-
为什么我的项目中没有出现这个主题?代码完成不显示@android ..
-
我不知道为什么。我只使用了默认项目并添加了一个活动。自动完成我不行,但主题就在那里。
-
有许多地方代码完成不起作用,它在Android Dev Tools的最新(juni 2011)更新中得到了极大的改进,但仍有许多工作要做!
-
除非你正在制作游戏,否则android:theme="@android:style/Theme.Black.NoTitleBar"可能更有用
-
或者
来点亮主题。
-
我不知道为什么,但这会让我的应用程序崩溃。有帮助吗?
-
@Akeshwar:你可能不得不搞乱你的styles.xml文件。例如,将