您需要将Theme.AppCompat主题(或后代)与此活动一起使用(不通过stackoverflow解决)

时间:2016-07-15 11:52:41

标签: android android-layout android-support-library android-styles android-support-design

我收到此错误,我不知道如何修复它。我搜索过,找到了设置主题和更改主题的解决方案,甚至重复了库,但没有修复它!

我的错误:

Error

我的宣言:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.android.vending.BILLING" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        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>
            <intent-filter>
                <action android:name="SLUITEN" />
            </intent-filter>
        </activity>
        <activity
            android:name=".CustomSettings"
            android:label="@string/title_activity_custom_settings"
            android:theme="@style/AppTheme" />
        <activity android:name=".aantekeningen.Aantekeningen" />
        <activity
            android:name="com.example.avjindersinghsekhon.minimaltodo.MainActivity"
            android:theme="@style/AppThemed"
            android:launchMode="singleTop"
            android:screenOrientation="portrait"
            />


        <activity android:name="com.example.avjindersinghsekhon.minimaltodo.AddToDoActivity"
            android:screenOrientation="portrait"
            android:parentActivityName="com.example.avjindersinghsekhon.minimaltodo.MainActivity"
            />

        <activity android:name="com.example.avjindersinghsekhon.minimaltodo.AboutActivity"
            android:label="@string/app_name"
            android:parentActivityName="com.example.avjindersinghsekhon.minimaltodo.MainActivity"
            />

        <activity android:name="com.example.avjindersinghsekhon.minimaltodo.ReminderActivity"
            android:label="@string/app_name"
            />

        <service android:name="com.example.avjindersinghsekhon.minimaltodo.TodoNotificationService"
            />
        <service android:name="com.example.avjindersinghsekhon.minimaltodo.DeleteNotificationService"
            />
        <activity android:name="com.example.avjindersinghsekhon.minimaltodo.SettingsActivity"
            android:parentActivityName="com.example.avjindersinghsekhon.minimaltodo.MainActivity"

            />

        <receiver android:name=".ScheduleWidget">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/schedule_widget_info" />
        </receiver>

        <activity
            android:name=".CustomHours"
            android:label="Aangepaste uren"
            android:theme="@style/AppTheme"
            android:windowSoftInputMode="stateAlwaysHidden" />
    </application>

</manifest>

我的布局XML文件     

    <include layout="@layout/base_toolbar"/>
    <android.support.design.widget.CoordinatorLayout
            android:id="@+id/myCoordinatorLayout"
            android:layout_width="match_parent"
            android:gravity="center"
            android:layout_height="match_parent"
            >

        <LinearLayout
            android:id="@+id/toDoEmptyView"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:src="@drawable/empty_view_bg"
                android:layout_width="100dp"
                android:layout_height="100dp" />
            <TextView
                android:text="@string/no_to_dos"
                android:textColor="@color/secondary_text"
                android:textSize="16sp"
                android:paddingTop="4dp"
                android:paddingBottom="8dp"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </LinearLayout>

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:elevation="0dp"
            android:elevation="0dp"
            >

            <include layout="@layout/base_toolbar"/>
        </android.support.design.widget.AppBarLayout>

            <!--<include layout="@layout/base_toolbar"/>-->


        <!--</android.support.design.widget.AppBarLayout>-->


            <com.example.avjindersinghsekhon.minimaltodo.RecyclerViewEmptySupport
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                android:id="@+id/toDoRecyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>


        <android.support.design.widget.FloatingActionButton
            android:src="@drawable/ic_add_white_24dp"
            android:id="@+id/addToDoItemFAB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="16dp"
            app:layout_anchor="@id/myCoordinatorLayout"
            app:layout_anchorGravity="bottom|right|end"
            app:layout_behavior="com.example.avjindersinghsekhon.minimaltodo.ScrollingFABBehaviour"
            />


    </android.support.design.widget.CoordinatorLayout>
</LinearLayout>

我的styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="AppThemeGrey" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorGrey</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowActionBar">false</item>
    </style>
    <style name="MyRandomTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/amber</item>
        <item name="colorPrimaryDark">@color/amberPressed</item>
        <item name="colorAccent">@color/amber</item>
    </style>
    <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
        <item name="android:textColor">#ff9800</item>
    </style>
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
    <style name="CustomStyle" parent="Theme.AppCompat.NoActionBar">
        <item name="colorAccent">@color/colorAccent</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorSwitchThumbNormal">@color/grey300</item>
        <item name="android:colorForeground">@color/grey600</item>
    </style>
    <style name="CustomStyle.DarkTheme" parent="Theme.AppCompat">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorAccent">@color/amber</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorSwitchThumbNormal">@color/grey300</item>
        <item name="android:colorForeground">@color/grey600</item>
    </style>
    <style name="PopupMenuLight" parent="Widget.AppCompat.PopupMenu">
        <item name="android:popupBackground">@android:color/black</item>
    </style>
    <style name="OverflowThreeDotsWhite" parent="Widget.AppCompat.Light.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_menu_overflow_light</item>
    </style>
    <style name="ToolBarTheme" parent="Widget.AppCompat.Toolbar">
        <item name="titleTextAppearance">@style/ToolbarTitleTextAppearanceLight</item>
    </style>
    <style name="ToolbarTitleTextAppearanceLight" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@android:color/white</item>
    </style>
    <style name="ToolbarTitleTextAppearanceDark" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/amber</item>
    </style>
    <style name="CustomStyle.LightTheme" parent="Theme.AppCompat.Light">
        <item name="actionOverflowButtonStyle">@style/OverflowThreeDotsWhite</item>
        <item name="toolbarStyle">@style/ToolBarTheme</item>
        <item name="popupMenuStyle">@style/PopupMenuLight</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorSwitchThumbNormal">@color/grey300</item>
        <item name="android:colorForeground">@color/grey600</item>
    </style>
    <style name="CustomToolbar" parent="Widget.AppCompat.ActionBar">
        <item name="theme">@style/CustomToolbarTheme</item>
    </style>
    <style name="CustomToolbarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
        <item name="android:textColorPrimary">@color/secondary_text</item>
    </style>
    <style name="CustomCheckbox" parent="Widget.AppCompat.CompoundButton.CheckBox">
        <item name="android:button">@color/amber</item>
    </style>
    <style name="AppTheme.ToolBarPadding" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="toolbarStyle">@style/myToolBarStyle</item>
    </style>
    <style name="CustomDialog" parent="Base.Theme.AppCompat.Light.Dialog">
        <item name="colorAccent">@color/colorPrimary</item>
    </style>
    <style name="CustomSwitch" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorSwitchThumbNormal">@color/amber</item>
        <item name="android:colorForeground">@color/secondary_text</item>
    </style>
    <style name="myToolBarStyle" parent="@style/Widget.AppCompat.Toolbar">
        <item name="android:paddingRight">32dp</item>
    </style>
    <style name="FloatingLabelTextAppearance" parent="TextAppearance.AppCompat">
        <item name="android:textColor">@android:color/white</item>
    </style>
    <style name="AppThemed" parent="Theme.AppCompat">
        <!-- Customize your theme here. -->
        <item name="android:windowActionBar">false</item>
    </style>
</resources>


修改:

启动应用时出错:

FATAL EXCEPTION: main
Process: com.company.app, PID: 31597
java.lang.IllegalStateException: View can not be anchored to the the parent CoordinatorLayout
    at android.support.design.widget.CoordinatorLayout$LayoutParams.resolveAnchorView(CoordinatorLayout.java:2526)
    at android.support.design.widget.CoordinatorLayout$LayoutParams.findAnchorView(CoordinatorLayout.java:2495)
    at android.support.design.widget.CoordinatorLayout.prepareChildren(CoordinatorLayout.java:623)
    at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:674)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2015)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1173)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1379)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
    at android.view.Choreographer.doCallbacks(Choreographer.java:580)
    at android.view.Choreographer.doFrame(Choreographer.java:550)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

1 个答案:

答案 0 :(得分:0)

解决方案是:

根据@XaverKapeller&#34;然后给AppBarLayout一个id并在app:layout_anchor属性中引用它。&#34;

此解决方案有效 谢谢@XaverKapeller