问题
I just updated to appcompat library from 23.1.1 to 23.2 and now application stopped working on java.lang.IllegalStateException: View can not be anchored to the the parent CoordinatorLayout.
java.lang.IllegalStateException: View can not be anchored to the the parent CoordinatorLayout
Crash comes from resolveAnchorView
method of CoordinatorLayout
when parent (CoordinatorLayout is not in edit mode). Layout is used as root element in base activity and contains different layouts (toolbar, progressbar and finally relativelayout with inflated layout of activity.
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/base_activity__main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/shared__color_primary">
<ProgressBar
android:id="@+id/base_activity__progress_bar_top"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="gone" />
<ViewSwitcher
android:id="@+id/base_activity__switcher"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/base_activity__progress_bar_top">
<LinearLayout
android:id="@+id/base_activity__progress_bar_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/_loading"
android:textStyle="italic" />
<ProgressBar
android:id="@+id/base_activity__progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:indeterminate="true" />
</LinearLayout>
<RelativeLayout
android:id="@+id/base_activity__main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ViewSwitcher>
<RelativeLayout
android:id="@+id/base_activity__add_button__container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent" />
</android.support.design.widget.CoordinatorLayout>
回答1:
You cannot set the layout anchor attribute to the co ordinator layout itself app:layout_anchor="@id/base_activity__main_layout",
this is wrong, you need to set some direct child of the co ordinator as this layouts anchor
来源:https://stackoverflow.com/questions/35747736/view-can-not-be-anchored-to-the-parent-coordinatorlayout