我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
当前回答
如果你替换了DarkActionBar的定义,你只需要改变style .xml中的AppTheme样式
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
对NoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
在androidmanifest .xml中定义的AppTheme
其他回答
正确的答案可能是不扩展ActionbarActivity,而只是扩展Activity
如果你仍然使用动作栏活动 这似乎起作用了:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide(); //<< this
setContentView(R.layout.activity_main);
}
这似乎也管用:
styles.xml:
<style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
<item name="android:windowNoTitle">true</item> <!-- //this -->
</style>
我可以像斯科特·比格斯写的那样。这种方法很有效。除了没有主题。我的意思是设置菜单的背景是透明的:
只改变
public class MainActivity extends ActionBarActivity {
到Activity或FragmentActivity
public class MainActivity extends Activity {
然而,我可以让它看起来足够好使用材料设计,而不是删除 actionbar: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53
设置应用程序图标 设置操作栏的颜色以匹配设计。 将图标设置为设置菜单 添加更多图标(顶部按钮)
它是通过实例的材料设计兼容动作栏样式。
添加舱单文件,
android:theme="@android:style/Theme.Translucent.NoTitleBar"
添加以下行到您的Java文件,
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
我发现了发生这种错误的两个原因。
一个。窗口标志已经在super.onCreate(savedInstanceState)中设置好了;在这种情况下,您可能需要使用以下命令的顺序:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
两个。在标题栏中有Back/Up按钮,这意味着当前活动是另一个活动的分层子活动,在这种情况下,您可能想要注释掉或从onCreate方法中删除这行代码。
getActionBar().setDisplayHomeAsUpEnabled(true);
在这篇文章中提到了它,但没有人明确地解决它,所以这可能会节省人们一些时间。如果你像我一样,有多个类扩展了一个扩展ActionBarActivity的根类,可能不会立即明显地尝试将该活动设置为NoTitleBar/NoActionBar会抛出一个错误,具体来说:
“你需要使用一个主题。AppCompat主题(或后代)
你可以修改扩展到活动。
在我的例子中,如果你使用的是android studio 2.1,并且你的编译SDK版本是6.0,那么只需转到你的manifest.xml文件,并更改以下代码:
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lesterxu.testapp2">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
下面是截图(见高亮代码):