#android #android-layout #android-constraintlayout
#Android #android-макет #android-ограничение
Вопрос:
У меня есть ConstraintLayout
, и я хочу показать кнопку в нижней части экрана. Основная область экрана-это a RecyclerView
, если это имеет значение. В
любом случае я хотел бы иметь вид горизонтальной линии прямо над кнопкой.
Я попробовал следующее:
lt;?xml version="1.0" encoding="utf-8"?gt; lt;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" gt; lt;TextView android:id="@ id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" android:text="Some text here" /gt; lt;androidx.recyclerview.widget.RecyclerView android:id="@ id/recycler" app:layout_constraintTop_toBottomOf="@id/text" app:layout_constraintStart_toStartOf="parent" android:layout_marginTop="12dp" android:layout_width="match_parent" android:layout_height="wrap_content"/gt; lt;View android:layout_width="match_parent" android:layout_height="2dp" android:layout_marginStart="16dp" android:background="@color/red_color" app:layout_constraintBottom_toBottomOf="@id/button" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/recycler" app:layout_constraintVertical_bias="0.887" /gt; lt;Button android:id="@ id/button" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" android:text="Click Here" /gt; lt;/ConstraintLayoutgt;
Но фиктивный вид не отображается над кнопкой.
Что я могу сделать, чтобы исправить это?
Комментарии:
1. Пожалуйста, предоставьте изображение того, что вы хотите сделать, если это возможно
2. @KaranMehta: Мне просто нужна красная горизонтальная линия прямо над кнопкой в нижней части экрана
3. Я могу предложить, как это сделать с линейной компоновкой или относительной компоновкой
4. @KaranMehta: Мне нужно использовать ограничение.
Ответ №1:
lt;?xml version="1.0" encoding="utf-8"?gt;lt;androidx.constraintlayout.widget.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" gt; lt;TextView android:id="@ id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" android:text="Some text here" /gt; lt;androidx.recyclerview.widget.RecyclerView android:id="@ id/recycler" app:layout_constraintTop_toBottomOf="@id/text" app:layout_constraintStart_toStartOf="parent" android:layout_marginTop="12dp" app:layout_constraintBottom_toTopOf="@ id/guideline" android:layout_width="match_parent" android:layout_height="0dp"/gt; lt;View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/black" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/recycler" /gt; lt;androidx.constraintlayout.widget.Guideline android:id="@ id/guideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.9" /gt; lt;Button android:id="@ id/button" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@ id/guideline" android:text="Click Here" /gt; lt;/androidx.constraintlayout.widget.ConstraintLayoutgt;
Вот рабочее решение, которое может вам помочь.
Комментарии:
1. Кажется, это работает. 1) Как вы сделали свой выбор
0.9
? 2) Я использовалapp:layout_constraintBottom_toTopOf="@id/guideline"
в линейном представлении. Вы видите в этом какие-то проблемы?2. 1)0,9 — это коэффициент экрана.
3. Разве это не означает, что нужно разместить его на 90% сверху? Не уверен, как понять это число
4. 2)Нет никаких проблем.
5. @Jim от 0 до 100-это соотношение экрана в руководстве. в вашем случае это соотношение экрана должно быть вертикальным.
Ответ №2:
Зацени это
lt;?xml version="1.0" encoding="utf-8"?gt; lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"gt; lt;TextView android:id="@ id/text" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Some text here" /gt; lt;androidx.recyclerview.widget.RecyclerView android:id="@ id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/red_view" android:layout_below="@id/text" android:layout_marginTop="12dp" /gt; lt;View android:id="@ id/red_view" android:layout_width="match_parent" android:layout_height="2dp" android:layout_above="@id/button" android:layout_marginBottom="5dp" android:background="#ff0000" /gt; lt;Button android:id="@ id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="Click Here" /gt; lt;/RelativeLayoutgt;
Комментарии:
1. Вопрос заключается в использовании ConstraintLayout