ConstraintLayout 1.1.2 не может переносить и ограничивать как высоту, так и ширину для виджетов - PullRequest
0 голосов
/ 16 мая 2019

Я не могу ограничить и обернуть содержимое виджета TextViewCompat (прямого потомка фрагмента с корнем макета ограничения), используя последние рекомендации API. Я пытаюсь обернуть и ограничить как по высоте, так и по ширине.

https://developer.android.com/reference/android/support/constraint/ConstraintLayout

WRAP_CONTENT: применение ограничений (добавлено в 1.1)

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

app:layout_constrainedWidth=”true|false”
app:layout_constrainedHeight=”true|false”
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

       <android.support.v7.widget.AppCompatTextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       app:layout_constrainedWidth="true"
       app:layout_constrainedHeight="true"/>

Я также пытался использовать старый API следующим образом:

android:layout_height="0dp"
   app:layout_constraintHeight_default="wrap"

но он не переносит AppCompatTextView.

Что касается моего прочтения документации, то должна быть возможность ограничить размеры и высоту одновременно.

Однако единственный способ, которым мне удалось обернуть и ограничить высоту AppCompatTextView, - это , сняв ограничение на высоту , например так:

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

Это похоже на нестабильное решение. Также кажется, что это не предназначенное для меня поведение. Я понимаю, что в Constraint Layout 1.1+ ограничение + перенос должен работать. Раньше он работал с предыдущим API (см. Выше), теперь он не работает ни с одним из API.

Я что-то упустил? Это ошибка? Буду признателен за любую помощь!

РЕДАКТИРОВАТЬ: Также имел другую идею и попробовал это в соответствии с документами API, все еще без успеха:

        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintWidth_min="wrap"
        app:layout_constraintWidth_max="wrap"
        app:layout_constraintHeight_min="wrap"
        app:layout_constraintHeight_max="wrap"
...