web-dev-qa-db-ja.com

このアクティビティには、ウィンドウ装飾(FEATURE_ACTION_BAR)によって提供されるアクションバーが既にあります

このアクティビティには、ウィンドウ装飾によって提供されるアクションバーが既にあります。 Window.FEATURE_ACTION_BARをリクエストせず、代わりにツールバーを使用するようにテーマでwindowActionBarをfalseに設定しないでください

これは私が得たエラーです。解決策を探しましたが、解決方法が見つかりませんでした。これは私のコードです:

styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/myPrimaryColor</item>
    <item name="colorPrimaryDark">@color/myPrimaryDarkColor</item>
    <item name="colorAccent">@color/myAccentColor</item>

    <item name="Android:textColorPrimary">@color/myTextPrimaryColor</item>
</style>

<style name="ActionBarPopupThemeOverlay" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
</style>

<style name="Toolbartitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="Android:textColor">@Android:color/white</item>
</style>

<style name="ToolbarSubtitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
    <item name="Android:textColor">#56FFFFFF</item>
</style>

send_comment.xml(アクティビティレイアウト)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:orientation="vertical"
              Android:layout_width="match_parent"
              Android:layout_height="match_parent">
    <Android.support.v7.widget.Toolbar
            xmlns:app="http://schemas.Android.com/apk/res-auto"
            Android:id="@+id/my_toolbar"
            Android:layout_height="128dp"
            app:popupTheme="@style/ActionBarPopupThemeOverlay"
            Android:layout_width="match_parent"
            Android:background="?attr/colorPrimary"
            Android:paddingLeft="72dp"
            Android:paddingBottom="16dp"
            Android:gravity="bottom"
            app:titleTextAppearance="@style/Toolbartitle"
            app:subtitleTextAppearance="@style/ToolbarSubtitle"
            app:theme="@style/ThemeOverlay.AppCompat.Light"
            Android:title="תגובה"
            />
</RelativeLayout>

SendComment.Java

public class SendComment extends ActionBarActivity {
    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.send_comment);
        toolbar = (Toolbar) findViewById(R.id.my_toolbar);
        toolbar.setTitle("");
        setSupportActionBar(toolbar);
    }
}

私は何を間違えていますか?

19
Haim127

AppThemeスタイルの使用では、

Theme.AppCompat.Light.NoActionBar

の代わりに

Theme.AppCompat.Light.DarkActionBar

アクションバーを持つテーマを設定し、ツールバーをアクションバーとして設定しています。そのため、このエラーが発生します。

代わりにアクションバーのないテーマを使用すると、問題が修正されます。

75
Hirak Chhatbar

スタイルname="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"を使用し、どこでもAndroidへのコンテキストのフローを維持するのと同じテーマを使用します。2つのActionBarの間で混乱しないためです。

1
Ashwani
Define this style 
<style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="textColorError">@color/design_textinput_error_color_light</item>
            <item name="Android:windowNoTitle">true</item>
            <item name="Android:windowActionBar">false</item>
            <item name="Android:actionMenuTextColor">@color/color_white</item>
            <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
        </style> 
Please use this in your androidmanifest.xml file.This will resolve your problem. 
0