layout_constraintWidth_default = "wrap" устарела какая-либо альтернатива? - PullRequest
1 голос
/ 12 июня 2019

Я использовал этот layout_constraintWidth_default = "wrap" в textview справа от него imageview, чтобы сохранить текстовое представление обернутым, и по мере того, как текст в textview увеличивается, область textview становится больше, что перемещает изображение, расположенное справа от textview.

layout_constraintWidth_default="wrap"

Как устарели какие-либо альтернативы?

Logcat

enter image description here

Ответы [ 3 ]

2 голосов
/ 13 июня 2019

Как сказано в документации по этой ссылке от Разработчики Android :

В версиях до 1.1 они будут рассматриваться как буквальное измерение, то есть ограничения не будут ограничивать результирующее измерение. Хотя в целом этого достаточно (и быстрее), в некоторых ситуациях вы можете захотеть использовать WRAP_CONTENT, но продолжайте применять ограничения для ограничения результирующего измерения. В этом случае вы можете добавить один из соответствующих атрибутов:

app:layout_constrainedWidth="true|false"

Следовательно, используйте layout_constrainedWidth="true" вместо layout_constraintWidth_default="wrap".

1 голос
/ 14 июня 2019

Если измерение установлено на WRAP_CONTENT, в версиях до 1.1 они будут обрабатываться как буквальное значение измерения, ограничения не будут ограничивать результирующее измерение.

Часто требуется, чтобы ширина или высота вида оставалась в качестве содержимого переноса вместо ограничения соответствия или родительского соответствия, но, к сожалению, содержимое переноса перекрывает применяемое ограничение и накладывается на ограничение, если ширина или высота изменяются.В версии 1.1.0 эта проблема решается с помощью

app:layout_constrainedWidth="true"  OR  app:layout_constrainedHeight="true"

FYI

Вы можете использовать percentage для шириныа по высоте размер должен быть match constraint(0dp) и app:layout_constraintWidth_default="percent" или app:layout_constraintHeight_default="percent" необходимо установить в процентах.

Пример

<TextView
    android:id="@+id/txtView"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="Hello Width In Percentage"
    app:layout_constraintWidth_default="percent"
    app:layout_constraintWidth_percent="0.5"
    app:layout_constraintLeft_toLeftOf="parent" />

GRADLE

 implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // For androidx
 implementation 'com.android.support.constraint:constraint-layout:1.1.3'
0 голосов
/ 15 июня 2019

Ниже приведены изменения, которые я внес в решение, просмотр изображения не выйдет за пределы видимой области экрана:

android:layout_width="wrap_content"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintHorizontal_chainStyle="packed"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Text asdasdasdasdasdasdasdasdasdadsasdasdasdasdasdasdasd"
            app:layout_constrainedWidth="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/image"
            app:layout_constraintHorizontal_bias="0"
            app:layout_constraintHorizontal_chainStyle="packed"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/text"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
...