Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

View can not be anchored to the parent CoordinatorLayout

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>
like image 477
jakub Avatar asked Mar 02 '16 12:03

jakub


1 Answers

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

like image 99
Bhargav Avatar answered Nov 21 '22 04:11

Bhargav