我在Android Studio中创建了一个Android应用,它默认创建了这些样式:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
但是,在一项活动中,我尝试将其设置为主题:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:theme="@style/AppTheme.NoActionBar">
但是当我运行应用程序时,我正在获取操作栏:
为什么我要一个动作栏?我做了一些明显错误的事情,还是Android工作室,这是谷歌自己平台的官方IDE,试图混淆/误导其开发者?
这是我的活动代码,其中没有任何内容可以导致操作栏自行显示:
public class WelcomeActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.activity_welcome);
}
}
答案 0 :(得分:40)
尝试这样的事情:
<style name="AppTheme.NoActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
并将其设置为清单中活动的主题,即:
<activity
...
android:theme="@style/AppTheme.NoActionBar">
</activity>
答案 1 :(得分:8)
其他答案都没有对我有用,但我找到了这个解决方案:
在Android Studio中打开values/styles.xml
并更改此内容:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
为:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- changed .DarkActionBar to .NoActionBar -->
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
答案 2 :(得分:4)
如果您只是让Android Studio自动生成活动,请查看activity_welcome
。有android.support.design.widget.AppBarLayout
,如果删除它,ActionBar就应该消失了。
答案 3 :(得分:3)
您的布局中可能有一个操作栏,或者在AndroidManifest文件中设置主题
答案 4 :(得分:1)
WelcomeActivity 扩展 AppCompatActivity 后,尝试 Theme.AppCompat.NoActionBar :
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
如果尚未完成,请在build.gradle中包含一个appcompat库版本:
dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
}
答案 5 :(得分:0)
您应该在下面添加
<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>
您可以使用
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
答案 6 :(得分:0)
你应该在manifest.xml中使用这个主题,同样如下:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
在styles.xml中:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
答案 7 :(得分:0)
尝试检查AndroidManifest.xml文件。我发现主要主题是为该应用程序建立的,但是我想应用的主题必须添加到正确的活动中。
答案 8 :(得分:0)
我的一项活动(不是主要活动)也遇到了类似的问题。我在穆罕默德K的答案中有类似的主题:
<style name="MyActivitysTheme">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
我也刚刚添加了父主题:
<style name="MyActivitysTheme" parent="AppTheme">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
我想这样可以成功地覆盖主题