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

<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:id="@+id/activity_editor_main"
    android:layout_height="match_parent">

<!-- Overview category -->
<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/view">

    <!-- Label -->
    <TextView
        style="@style/PlayerTextStyle"
        android:padding="16dp"
        android:text="@string/player_1" />

    <EditText
        style="@style/InputTextStyle"
        android:hint="@string/player_name"
        android:inputType="textCapWords"
        android:textAppearance="?android:textAppearanceMedium" />
</LinearLayout>

<!-- Label -->
<TextView
    android:id="@+id/player_colour"
    style="@style/PlayerTextStyle"
    android:padding="16dp"
    android:text="@string/player_colour"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/linearLayout2" />

<LinearLayout
    android:id="@+id/linearLayout3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:orientation="horizontal"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/player_colour">


</LinearLayout>




</android.support.constraint.ConstraintLayout>

Это кнопка, которую я хочу добавить в последний LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/colour_button_editor"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageButton
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:background="@drawable/a"
        android:gravity="center_vertical|center_horizontal" />

</FrameLayout>

Я хочу использовать LayoutInflater для надувания 10-12 разных цветов на выбор и добавления их под несколько TextView. Я не хочу диалога! Любые предложения, как заставить его работать ??

1
Babadzhanov 13 Июн 2018 в 15:08

1 ответ

Лучший ответ

При динамическом добавлении представления в макет, родительский элемент которого - ConstarintLayout, по умолчанию используется верхний левый угол. Вы можете использовать ConstraintLayout.LayoutParams для динамической установки ограничений.

1
Sree... 13 Июн 2018 в 13:15