constraitlayout заменить "0dp" на "wrap_content" не работает - PullRequest
0 голосов
/ 16 апреля 2020

Говорят, что ограничение в android:layout_width="0dp" устарело и должно быть заменено на

        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"

после замены

        android:layout_width="0dp"
        android:layout_height="0dp"

на

        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"

макет больше не работает.

это тот, у которого "0dp"

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/_tweet_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="20dp"
    android:background="?android:attr/selectableItemBackground"
    android:paddingStart="@dimen/social_content_padding"
    android:paddingEnd="@dimen/social_content_padding"
    >

    <View android:id="@+id/_top_divider"
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:layout_marginBottom="20dp"
        android:background="#ee0000"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/_horizontal_guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintTop_toTopOf="@+id/_top_divider"
        app:layout_constraintGuide_begin="@dimen/social_content_padding" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/__guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="60dp" />

    <ImageView
        android:id="@+id/__avatar"
        android:layout_width="@dimen/social_avatar_size"
        android:layout_height="@dimen/social_avatar_size"
        android:layout_marginStart="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/unknown_avatar"
        android:contentDescription="@null"
        app:layout_constraintEnd_toStartOf="@+id/__guideline"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintTop_toBottomOf="@+id/_horizontal_guideline"
        tools:background="#00ff0000"
        />


    <TextView
        android:id="@+id/__tweet_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="6dp"
        android:layout_marginTop="6dp"
        android:autoLink="web"
        android:lineSpacingMultiplier="1.1"
        android:linksClickable="true"
        android:textColor="#ee8888"
        android:textSize="12sp"
        app:layout_constrainedWidth="true"
        app:layout_constraintBottom_toTopOf="@+id/_img_container"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/__guideline"
        app:layout_constraintTop_toTopOf="@id/_horizontal_guideline"
        tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
        tools:visibility="visible" />

    <View
        android:id="@+id/_img_container"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_margin="6dp"
        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@+id/__media_image"
        app:layout_constraintDimensionRatio="H,15:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/__guideline"
        app:layout_constraintTop_toBottomOf="@+id/__tweet_content"
        app:layout_goneMarginBottom="8dp"

        tools:visibility="visible"
        />

    <View
        android:id="@+id/_img_sub_container_left"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_container"
        app:layout_constraintEnd_toStartOf="@+id/_img_sub_container_right"
        app:layout_constraintHorizontal_chainStyle="spread"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintStart_toStartOf="@+id/_img_container"
        app:layout_constraintTop_toTopOf="@+id/_img_container"
        tools:visibility="visible"
        />

    <View
        android:id="@+id/_img_sub_container_right"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_container"
        app:layout_constraintEnd_toEndOf="@+id/_img_container"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintStart_toEndOf="@+id/_img_sub_container_left"
        app:layout_constraintTop_toTopOf="@+id/_img_container"
        tools:visibility="visible"/>

    <ImageView
        android:id="@+id/__media_image_1"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginEnd="1dp"
        android:layout_marginBottom="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"

        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@+id/__media_image_3"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_left"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_left"
        app:layout_constraintTop_toTopOf="@+id/_img_sub_container_left"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_chainStyle="spread"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#ff0000"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />


    <ImageView
        android:id="@+id/__media_image_2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="1dp"
        android:layout_marginBottom="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"

        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@id/__media_image_4"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_right"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_right"
        app:layout_constraintTop_toTopOf="@+id/_img_sub_container_right"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_chainStyle="spread"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#00ff00"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />

    <ImageView
        android:id="@+id/__media_image_3"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginTop="1dp"
        android:layout_marginEnd="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"

        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_sub_container_left"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_left"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_left"
        app:layout_constraintTop_toBottomOf="@+id/__media_image_1"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#ff00ff"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />

    <ImageView
        android:id="@+id/__media_image_4"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="1dp"
        android:layout_marginTop="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_sub_container_right"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_right"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_right"
        app:layout_constraintTop_toBottomOf="@id/__media_image_2"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#ffff00"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />


    <Image
        android:id="@+id/__media_image"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_margin="8dp"
        android:scaleType="centerCrop"
        android:contentDescription="@null"
        android:visibility="gone"
        app:layout_constraintDimensionRatio="H,15:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/__guideline"
        app:layout_constraintTop_toBottomOf="@+id/_img_container"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_goneMarginBottom="@dimen/_normal_margin"
        tools:srcCompat="@tools:sample/backgrounds/scenic"
        tools:visibility="visible"
        tools:background="#00ff00"
        />



</androidx.constraintlayout.widget.ConstraintLayout>

дисплей в порядке:

enter image description here

но после замены макет не работает

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/_tweet_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="20dp"
    android:background="?android:attr/selectableItemBackground"
    android:paddingStart="@dimen/social_content_padding"
    android:paddingEnd="@dimen/social_content_padding"
    >

    <View android:id="@+id/_top_divider"
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:layout_marginBottom="20dp"
        android:background="#ee0000"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/_horizontal_guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintTop_toTopOf="@+id/_top_divider"
        app:layout_constraintGuide_begin="@dimen/social_content_padding" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/__guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="60dp" />

    <ImageView
        android:id="@+id/__avatar"
        android:layout_width="@dimen/social_avatar_size"
        android:layout_height="@dimen/social_avatar_size"
        android:layout_marginStart="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/unknown_avatar"
        android:contentDescription="@null"
        app:layout_constraintEnd_toStartOf="@+id/__guideline"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintTop_toBottomOf="@+id/_horizontal_guideline"
        tools:background="#00ff0000"
        />


    <TextView
        android:id="@+id/__tweet_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="6dp"
        android:layout_marginTop="6dp"
        android:autoLink="web"
        android:lineSpacingMultiplier="1.1"
        android:linksClickable="true"
        android:textColor="#ee8888"
        android:textSize="12sp"
        app:layout_constrainedWidth="true"
        app:layout_constraintBottom_toTopOf="@+id/_img_container"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/__guideline"
        app:layout_constraintTop_toTopOf="@id/_horizontal_guideline"
        tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
        tools:visibility="visible" />

    <View
        android:id="@+id/_img_container"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:layout_margin="6dp"
        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@+id/__media_image"
        app:layout_constraintDimensionRatio="H,15:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/__guideline"
        app:layout_constraintTop_toBottomOf="@+id/__tweet_content"
        app:layout_goneMarginBottom="8dp"

        tools:visibility="visible"
        />

    <View
        android:id="@+id/_img_sub_container_left"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_container"
        app:layout_constraintEnd_toStartOf="@+id/_img_sub_container_right"
        app:layout_constraintHorizontal_chainStyle="spread"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintStart_toStartOf="@+id/_img_container"
        app:layout_constraintTop_toTopOf="@+id/_img_container"
        tools:visibility="visible"
        />

    <View
        android:id="@+id/_img_sub_container_right"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_container"
        app:layout_constraintEnd_toEndOf="@+id/_img_container"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintStart_toEndOf="@+id/_img_sub_container_left"
        app:layout_constraintTop_toTopOf="@+id/_img_container"
        tools:visibility="visible"/>

    <ImageView
        android:id="@+id/__media_image_1"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:layout_marginEnd="1dp"
        android:layout_marginBottom="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"

        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@+id/__media_image_3"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_left"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_left"
        app:layout_constraintTop_toTopOf="@+id/_img_sub_container_left"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_chainStyle="spread"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#ff0000"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />


    <ImageView
        android:id="@+id/__media_image_2"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:layout_marginStart="1dp"
        android:layout_marginBottom="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"

        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@id/__media_image_4"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_right"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_right"
        app:layout_constraintTop_toTopOf="@+id/_img_sub_container_right"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_chainStyle="spread"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#00ff00"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />

    <ImageView
        android:id="@+id/__media_image_3"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:layout_marginTop="1dp"
        android:layout_marginEnd="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"

        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_sub_container_left"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_left"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_left"
        app:layout_constraintTop_toBottomOf="@+id/__media_image_1"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#ff00ff"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />

    <ImageView
        android:id="@+id/__media_image_4"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:layout_marginStart="1dp"
        android:layout_marginTop="1dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/_img_sub_container_right"
        app:layout_constraintEnd_toEndOf="@+id/_img_sub_container_right"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/_img_sub_container_right"
        app:layout_constraintTop_toBottomOf="@id/__media_image_2"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_weight="1"
        tools:visibility="visible"
        tools:background="#ffff00"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />


    <Image
        android:id="@+id/__media_image"
        android:layout_width="wrap_content"
        app:layout_constrainedWidth="true"
        android:layout_height="wrap_content"
        app:layout_constrainedHeight="true"
        android:layout_margin="8dp"
        android:scaleType="centerCrop"
        android:contentDescription="@null"
        android:visibility="gone"
        app:layout_constraintDimensionRatio="H,15:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/__guideline"
        app:layout_constraintTop_toBottomOf="@+id/_img_container"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_goneMarginBottom="@dimen/_normal_margin"
        tools:srcCompat="@tools:sample/backgrounds/scenic"
        tools:visibility="visible"
        tools:background="#00ff00"
        />



</androidx.constraintlayout.widget.ConstraintLayout>

будет иметь

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...