Группировка кнопок с помощью ConstraintLayout

#android #button #grouping #android-constraintlayout

#Android #кнопка #группировка #android-constraintlayout

Вопрос:

Я не могу сделать группу кнопок видимой или невидимой.

Цель состоит в том, чтобы при нажатии на одну из кнопок группа становилась невидимой, а следующая группа кнопок становилась видимой. Использование миграции на AndroidX.

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity">


    <androidx.constraintlayout.widget.Guideline
        android:id="@ id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="206dp" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@ id/guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5" />

    <Button
        android:id="@ id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="Button"
        app:layout_constraintBottom_toTopOf="@ id/guideline2"
        app:layout_constraintEnd_toStartOf="@ id/guideline"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@ id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="Button"
        app:layout_constraintBottom_toTopOf="@ id/guideline2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@ id/guideline"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.constraintlayout.widget.Group
        android:id="@ id/group4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        app:constraint_referenced_ids="button5,button6" />


</androidx.constraintlayout.widget.ConstraintLayout>
  

Я создаю группу с их кнопками и другими элементами, кнопки видны.

Комментарии:

1. какой код вы написали для события нажатия кнопки?

Ответ №1:

Попробуйте этот код .. при нажатии обе кнопки не видны.

  Group group;
 group=findViewById(R.id.group4);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            group.setVisibility(View.GONE);
        }
    });
  

Комментарии:

1. Ну, я понял это несколько дней назад. При использовании атрибутов в режиме разработки не отображается результат. Похоже, что это какой-то большой в Android Studio. Наконец, когда я запустил код, я увидел результат.

2. да, но невидимый не удаляет пробел, он содержит пробел, когда вы использовали gone, тогда он удаляет пробел.

Ответ №2:

Сделайте это в своем activity

 Group group4 = findViewById(R.id.group4);
Group group5 = findViewById(R.id.group5);
 ......
button.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
        group4.setVisibility(View.GONE);
        group5.setVisibility(View.VISIBLE);
     }
});