Как установить ширину вида в процентах от родительской ширины - некоторое пространство для полей в ConstraintLayout? - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу создать макет, как на картинке ниже:

enter image description here

Таким образом, каждая кнопка занимает 50% (родительская ширина - пространство для полей )

Если я установлю layout_constraintWidth_percent на 0,5, это не сработает. Я могу добиться этого, используя LinearLayout и вес, но как это сделать с ConstraintLayout?

Вот схема, которую я использую:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    >

  <Button
      android:id="@+id/other_options"
      style="?tertiaryButtonStyle"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_margin="@dimen/half_pad"
      android:text="@string/report_suicide_other_options_action"
      app:layout_constraintWidth_percent="0.5"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      />

  <Button
      android:id="@+id/yes"
      style="?primaryButtonStyle"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_margin="@dimen/half_pad"
      android:text="@string/action_yes"
      app:layout_constraintWidth_percent="0.5"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toEndOf="@+id/other_options"
      />

</androidx.constraintlayout.widget.ConstraintLayout>

1 Ответ

1 голос
/ 29 апреля 2020

Просто добавьте:

app:layout_constraintEnd_toStartOf="@+id/yes"

к Button с идентификатором other_options

, и вы можете удалить

app:layout_constraintWidth_percent="0.5"

с обеих кнопок.

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