我昨天更新了AndroïdSDK,因此我将targetSdkVersion
更改为21。
由于我做了这个更新,我无法在活动中隐藏“ActionBar”(这不是真正的一个)。
在我的应用程序中,我只想显示一个没有标题栏且没有操作栏的活动。
所有活动都使用了这个主题:
<style name="AppBaseTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
我在相关活动中试过这个:
@Override
protected void onCreate(final Bundle savedInstanceState) {
this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
}
但它不起作用。
我还尝试过:getSupportActionBar().hide()
但getSupportActionBar()
会返回null
你有什么想法吗?
答案 0 :(得分:7)
像这样使用getActionBar().hide()
。
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
this.getActionBar().hide();
}
}
答案 1 :(得分:3)
我有一个带有活动的应用程序而没有应用此样式的操作栏:
<style name="AppBaseThemeNoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
在API 21上切换项目后,它不再起作用,所以我不得不将样式更改为:
<style name="AppBaseThemeNoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
</style>
当然你必须在AndroidManifest.xml中应用它:
<activity
android:name=".activities.ActivitySplash"
android:theme="@style/AppBaseThemeNoActionBar">
</activity>
文档:http://android-developers.blogspot.be/2014/10/appcompat-v21-material-design-for-pre.html
答案 2 :(得分:1)
以上使用getActionbar().hide()
的解决方案对我没有用,所以我决定使用以下内容:
只需创建一个新主题,它是当前主题的扩展,并从中删除工具栏
public class YourActivity extends ActionBarActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTheme(R.style.YourTheme_NoTitleBar);
setContentView(R.layout.activity_your);
//...
}
}
可能的主题定义示例
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="YourTheme" parent="YourTheme.Base"/>
<style name="YourTheme.Base" parent="Theme.AppCompat">
<item name="colorPrimary">YOURCOLOR1</item>
<item name="colorPrimaryDark">YOURCOLOR2</item>
<!-- to show toolbar, be careful if windowNoTitle is set to true it will show the toolbar-->
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">true</item>
<item name="android:windowBackground">@color/YOURCOLOR3</item>
</style>
<style name="YourTheme.NoTitleBar" parent="YourTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
</resources>
注意.NoTitleBar
这可以是任何东西,但我采取这一点使其合乎逻辑,只需确保两个值都正确设置。如果windowActionBar
设置为false但android:windowNoTitle
仍然为false,那么它仍会显示工具栏!
官方文档http://android-developers.blogspot.be/2014/10/appcompat-v21-material-design-for-pre.html
答案 3 :(得分:0)
不是扩展到ActionBarActivity,而是将MainActivity类扩展为Activity,即
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
}
}
答案 4 :(得分:-1)
转到您的文件夹清单,然后打开AndroidManifest.xml
搜索应用标记下的行,
android:theme
这里放置任何没有Action Bars的主题。
就是这样!!