FrameLayout wrap_content in ConstraintLayout

My FrameLayoutinside a CoordinatorLayoutdoes not want to be wrap_content. When I select wrap_contentwith the ui tool, it does not set it to wrap_content, but sets a specific 48dp height .

I also tried installing it directly in the xml file and it works ... Until I open the file. I suppose the AS editor does some work and reset its height to 48dp .

This is what my layout looks like:

<layout
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>

        <import type="android.view.View" />
        <variable
            name="viewModel"
            type="com.mydomain.relationViewModel" />

    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:layout_centerInParent="true"

            android:visibility="@{viewModel.isLoading() ? View.VISIBLE : View.GONE}"/>

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="@{viewModel.isLoading() ? View.INVISIBLE : View.VISIBLE}">

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:id="@+id/hint"
                tools:text="Relation"
                android:layout_marginStart="16dp"
                app:layout_constraintLeft_toLeftOf="parent"
                android:layout_marginLeft="16dp"
                android:text="@string/relationship_spinner_hint"
                android:layout_marginTop="16dp"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="@+id/spinner" />

            <Spinner
                android:layout_width="0dp"
                android:layout_height="48dp"
                android:id="@+id/spinner"
                android:dropDownWidth="match_parent"
                android:layout_marginEnd="16dp"
                app:layout_constraintRight_toRightOf="parent"
                android:layout_marginRight="16dp"
                app:layout_constraintLeft_toRightOf="@+id/hint"
                android:layout_marginStart="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="16dp"
                app:layout_constraintTop_toTopOf="parent"

                app:setOnItemSelectedListener="@{viewModel.relationshipsListener}"/>

            <FrameLayout
                android:layout_width="0dp"
                android:layout_height="48dp"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                android:id="@+id/search_fragment_container"
                android:layout_marginEnd="16dp"
                android:layout_marginRight="16dp"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintTop_toBottomOf="@+id/search_patient_title">

            </FrameLayout>

            <Button
                android:text="@string/cancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cancel"
                app:layout_constraintLeft_toLeftOf="parent"
                style="@style/buttonStyle"
                android:layout_marginTop="8dp"
                app:layout_constraintTop_toBottomOf="@+id/search_fragment_container" />

            <TextView
                android:text="@string/search_patient"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/search_patient_title"
                android:layout_marginTop="8dp"
                app:layout_constraintTop_toBottomOf="@+id/spinner"
                android:layout_marginStart="16dp"
                app:layout_constraintLeft_toLeftOf="parent"
                android:layout_marginLeft="16dp"
                tools:text="Recherche du patient"
                style="@style/myTitle" />

        </android.support.constraint.ConstraintLayout>

    </RelativeLayout>

</layout>

And here is a screenshot of my plan (where is the selected layout - FrameLayout):

Blueprint

Thanks for the extra help!

EDIT Got the same problem with CardView (seems legitimate as it is a child of FrameLayout).

+4
1

Google bug ticket :

.

Android Studio 2.3 beta 1

+1

Source: https://habr.com/ru/post/1658460/


All Articles