一部のアクティビティでアクションバーを無効にしようとしていますが、何を試しても削除できないようです。
私のstyles.xmlには次のものがあります。
<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>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
そして私のmanifest.xmlには次のものがあります:
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<activity
Android:name=".NewActivity"
Android:label="@string/app_name"
Android:theme="@style/AppTheme.NoActionBar">
</activity>
</application>
私のアクティビティレイアウトファイル:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.DrawerLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/drawer_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_new"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
<Android.support.design.widget.NavigationView
Android:id="@+id/nav_view"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</Android.support.v4.widget.DrawerLayout>
私のapp_bar_newレイアウトファイル:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
tools:context="net.binarysea.sensorload.MainActivity">
<Android.support.design.widget.AppBarLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/AppTheme.AppBarOverlay">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</Android.support.design.widget.AppBarLayout>
<include layout="@layout/content_new" />
</Android.support.design.widget.CoordinatorLayout>
アクションバーを1つ(NewActivity)以外のアクティビティに表示したい。インテントを使用してNewActivityを呼び出します。その時点で、AppTheme.NoActionBarスタイルが読み込まれると思いましたが、バーは引き続き画面に表示されます。
Android studioで違いが生じる場合は、ナビゲーションドロワーアクティビティを使用しています
編集:私は追加を追加することを提案するすべてを試しましたTheme.AppCompat.Light.NoActionBar
、しかしそれは私のアクションバーを白くするだけで、実際にはそれを削除しません。これを新しいAndroidスタジオプロジェクトでテストし、ナビゲーションドロワーアクティビティを作成し、styles.xmlにテーマ設定を追加しました。それでも同じ問題が発生します
これを試して...
スタイルにparentタグを追加するだけです。
Styles.xml
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
AndroidManifest.xml
.......
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<activity
Android:name=".NewActivity"
Android:label="@string/app_name"
Android:theme="@style/AppTheme.NoActionBar">
</activity>
</application>
........
以下をマニフェストにドロップしてみてくださいAndroid:theme="@style/Theme.AppCompat.Light.NoActionBar"
NewActivityのonCreate()でこれを試して、特定のアクティビティのアクションバーを非表示にすることができます
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
Styles.xmlでこのように使用します
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="Android:windowBackground">@color/drawer_bg</item>
</style>
ツールバーの個別のレイアウトを作成する
ツールバー.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
</Android.support.v7.widget.Toolbar>
どのアクティビティでも、以下のコードを使用してこのツールバーにアクセスします。
Toolbar toolbar; //declaration
SetContentView()の後のonCreate()でこれを使用します
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);