У меня была похожая проблема с ограничениями по высоте и вертикали в представлении рециркулятора, и в итоге я использовал новую библиотеку поддержки версии 27.0.2 и макет ограничения версии 1.1.0-бета4 для получения ожидаемого поведения. Рекомендую всем вернуться к этим версиям, если они имеют странное поведение в макетах ограничений.

но я начал использовать макет Constraint, но сегодня столкнулся с очень странным поведением при его использовании. Когда я использую RelativeLayout в качестве пользователя root вместо ConstraintLayout в файле frag_holiday.xml, как и ожидалось, я хочу знать, что не так с ConstraintLayout. Мой код выглядит следующим образом для фрагмента item_row

И я получаю вывод с макетом ограничения как (И при прокрутке он показывает другое поведение, как вы можете видеть на скриншоте, которым я делюсь) ---

fragment_holiday.xml

    <android.support.constraint.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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.thepsi.psidashboard.Fragments.HolidayFragment">

    <com.thepsi.psidashboard.CustomViews.CustomDatePicker
        android:id="@+id/customDatePicker_holiday"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:dateFormat="MONTH_YEAR"/>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycle_view_holiday"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/general_margin_eight_dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/customDatePicker_holiday" />
</android.support.constraint.ConstraintLayout>

item_holiday.xml

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/textView25"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:text="24 - January - 2017"
        android:textColor="@color/colorPrimaryDark"
         />

    <TextView
        android:id="@+id/textView26"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="Saturday"
        android:layout_alignParentEnd="true"
        android:textColor="@color/colorPrimaryDark"
        />

    <TextView
        android:id="@+id/textView27"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorAccent"
        android:text="Mahavir Jayanti"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:layout_below="@+id/textView25"
        />
</RelativeLayout>

Ожидаемый дизайн -

Может кто-нибудь сказать мне, что мне здесь не хватает?

 pallav bohara06 дек. 2017 г., 12:16
@ArnoldBrown Да, это сработало !!!!!!! Но какого черта в документах написано, чтоMATCH_PARENT не рекомендуется для виджетов, содержащихся в ConstraintLayout. Подобное поведение можно определить с помощью MATCH_CONSTRAINT
 Arnold Brown06 дек. 2017 г., 12:03
Проверьте ширину вида переработчика. Дать "matchparent"

Ответы на вопрос(4)

Попробуйте следующее.

<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content">

    <TextView
        android:id="@+id/textView25"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="24 - January - 2017"
        android:textColor="@color/colorPrimaryDark"
        app:layout_constraintEnd_toStartOf="@+id/textView26"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView26"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:gravity="right"
        android:text="Saturday"
        android:textColor="@color/colorPrimaryDark"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/textView25"
        app:layout_constraintTop_toTopOf="@+id/textView25" />

    <TextView
        android:id="@+id/textView27"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@color/colorAccent"
        android:text="Mahavir Jayanti"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView25" />
</android.support.constraint.ConstraintLayout>
 pallav bohara06 дек. 2017 г., 11:29
Спасибо за ответ. Безуспешно :( теперь это выглядит какэто.

редставлении рециркулятора, и в итоге я использовал новую библиотеку поддержки версии 27.0.2 и макет ограничения версии 1.1.0-бета4 для получения ожидаемого поведения. Рекомендую всем вернуться к этим версиям, если они имеют странное поведение в макетах ограничений.

Решение Вопроса

Изменитьширина изrecyclerview какmatchparent

Да уж! согласно документациивиджет вConstraintLayout не поддерживаетmatchparent какширина.

Мы должны назначитьширина как0dp и использоватьconstraintStart_toStartOf = "родитель" а такжеconstraintEnd_toEndOf = "родитель" отражатьmatchparent как ты использовал.

Но решение, которое я дал, будет работать в некоторых случаях, как у вас.

xml. Я просто добавил три метки и добавил их свойства ограничения. Вам нужно будет отредактировать ярлык, соответствующий вашему требованию.

<android.support.constraint.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:layout_width="match_parent"
    android:layout_height="wrap_content">


    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_marginEnd="88dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="32dp"
        android:text="TextView"
        app:layout_constraintEnd_toStartOf="@+id/textView2"
        app:layout_constraintHorizontal_bias="0.888"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_marginEnd="88dp"
        android:layout_marginTop="32dp"
        android:text="TextView"
        app:layout_constraintEnd_toStartOf="@+id/textView3"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_marginEnd="16dp"
        android:layout_marginTop="32dp"
        android:text="TextView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
 pallav bohara02 дек. 2017 г., 11:58
Спасибо за ответ, но я не хочу, чтобы View имел фиксированные размеры, как вы указали. Я обновляю свой ответ с ожидаемым дизайном.

Ваш ответ на вопрос