Как использовать поле для флажков, чтобы они находились друг на друге - PullRequest
0 голосов
/ 29 мая 2020

У меня такой код:

    <LinearLayout
        android:id="@+id/availability_sunday"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tile_divider"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/text_sunday"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Sunday:" />

        <CheckBox
            android:id="@+id/checkbox_sunday_morning"
            android:layout_height="wrap_content"
            android:drawSelectorOnTop="true"
            android:layout_width="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp" />

        <TextView
            android:id="@+id/text_sunday_morning"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Morning"/>

        <CheckBox
            android:id="@+id/checkbox_sunday_evening"
            android:layout_height="wrap_content"
            android:drawSelectorOnTop="true"
            android:layout_width="wrap_content" />

        <TextView
            android:id="@+id/text_sunday_evening"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Evening"/>
    </LinearLayout>

В RelativeLayout. Я бы хотел, чтобы макет был:

Sunday     [] Morning [] Evening
Monday     [] Morning [] Evening
...
Thursday   [] Morning [] Evening

Но если я добавлю тот же блок в понедельник, я получу:

enter image description here

Потому что работают android:layout_marginStart и android:layout_marginLeft. Я хочу, чтобы флажки были друг над другом. Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 29 мая 2020

Попробуйте следующий код:

<LinearLayout
   android:layout_below="@+id/tile_divider"
    android:id="@+id/availability_sunday"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/text_sunday"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Sunday:" />

    <CheckBox
        android:id="@+id/checkbox_sunday_morning"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="true"
        android:layout_width="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp" />

    <TextView
        android:id="@+id/text_sunday_morning"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Morning"/>

    <CheckBox
        android:id="@+id/checkbox_sunday_evening"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="true"
        android:layout_width="wrap_content" />

    <TextView
        android:id="@+id/text_sunday_evening"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Evening"/>
</LinearLayout>
0 голосов
/ 29 мая 2020

попробуйте Constraint layout, будет проще ..

<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">
<!--For sunday-->
<TextView
    android:id="@+id/text_sunday"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:text="Sunday:"
    app:layout_constraintBottom_toBottomOf="@id/checkbox_sunday_morning"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@id/checkbox_sunday_morning" />

<CheckBox
    android:id="@+id/checkbox_sunday_morning"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:drawSelectorOnTop="true"
    app:layout_constraintStart_toEndOf="@id/text_sunday"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/text_sunday_morning"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="4dp"
    android:text="Morning"
    app:layout_constraintBottom_toBottomOf="@id/checkbox_sunday_morning"
    app:layout_constraintStart_toEndOf="@id/checkbox_sunday_morning"
    app:layout_constraintTop_toTopOf="@id/checkbox_sunday_morning" />

<CheckBox
    android:id="@+id/checkbox_sunday_evening"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:drawSelectorOnTop="true"
    app:layout_constraintStart_toEndOf="@id/text_sunday_morning"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/text_sunday_evening"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Evening"
    app:layout_constraintBottom_toBottomOf="@id/checkbox_sunday_evening"
    app:layout_constraintStart_toEndOf="@id/checkbox_sunday_evening"
    app:layout_constraintTop_toTopOf="@id/checkbox_sunday_evening" />
<!--for monday-->
<CheckBox
    android:id="@+id/checkbox_monday_morning"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:drawSelectorOnTop="true"
    app:layout_constraintStart_toStartOf="@id/checkbox_sunday_morning"
    app:layout_constraintTop_toBottomOf="@id/checkbox_sunday_morning" />

<TextView
    android:id="@+id/text_monday_morning"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="4dp"
    android:text="Morning"
    app:layout_constraintBottom_toBottomOf="@id/checkbox_monday_morning"
    app:layout_constraintStart_toEndOf="@id/checkbox_monday_morning"
    app:layout_constraintTop_toTopOf="@id/checkbox_monday_morning" />

<CheckBox
    android:id="@+id/checkbox_monday_evening"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:drawSelectorOnTop="true"
    app:layout_constraintStart_toStartOf="@id/checkbox_sunday_evening"
    app:layout_constraintTop_toBottomOf="@id/checkbox_sunday_evening" />

<TextView
    android:id="@+id/text_Monday_evening"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Evening"
    app:layout_constraintBottom_toBottomOf="@id/checkbox_monday_evening"
    app:layout_constraintStart_toEndOf="@id/checkbox_monday_evening"
    app:layout_constraintTop_toTopOf="@id/checkbox_monday_evening" />

<TextView
    android:id="@+id/text_monday"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:text="Monday:"
    app:layout_constraintBottom_toBottomOf="@id/checkbox_monday_morning"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@id/checkbox_monday_morning" />

0 голосов
/ 29 мая 2020

Я не очень разбираюсь в Android Studio, но попробуйте следующее:
- Создайте TableLayout
- Поместите в него все свои данные (textView et c).

Цель состоит в том, чтобы ваши данные были симметричными (я думаю).

Также проверьте это

...