web-dev-qa-db-ja.com

Androidアクションバーを削除

一部のアクティビティでアクションバーを無効にしようとしていますが、何を試しても削除できないようです。

私の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にテーマ設定を追加しました。それでも同じ問題が発生します

7
Simon

これを試して...

スタイルに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"

3
Script Kitty

NewActivityのonCreate()でこれを試して、特定のアクティビティのアクションバーを非表示にすることができます

ActionBar actionBar = getSupportActionBar();
actionBar.hide();
0
Nishank Samant

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);
0
Mohd Asif Ahmed