Видимость группы с компоновкой ограничений Android 1.1.3 не работает - PullRequest
1 голос
/ 07 мая 2019

Я просто пытаюсь использовать групповое представление с макетом ограничений для Android, чтобы упростить настройку видимости нескольких представлений.Проблема в том, что хотя я изменяю видимость группы как пропавшую или невидимую, она ничего не делает.

Я уже попробовал шаги Павана в этой теме: переключить видимость группы цепочек вмакет ограничения .Но это ничего не изменило для меня.(Я предполагаю, что это потому, что я не использую бета-версию)

Вот мой файл gradle для приложения зависимостей

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Это фрагмент моего XML-файла с группой

<Button
            android:text="@string/action_update"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button_update"
            android:layout_marginBottom="32dp"
            app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp" android:layout_marginRight="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp" app:layout_constraintStart_toStartOf="parent" android:textSize="18sp"/>

<android.support.constraint.Group android:layout_width="wrap_content" android:layout_height="wrap_content"                             android:id="@+id/group"
android:visibility="gone"
app:constraint_referenced_ids="button_update"/>

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Вы импортируете виджет Group из неправильного пакета.

Измените

<android.support.constraint.Group

на

<androidx.constraintlayout.widget.Group

Обновленная версия

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
 ..............................................
                                        >

    <Button
        android:id="@+id/button_update"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="32dp"
        android:text="@string/action_update"
        android:textSize="18sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <androidx.constraintlayout.widget.Group
        android:id="@+id/group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        app:constraint_referenced_ids="button_update" />

</androidx.constraintlayout.widget.ConstraintLayout>
0 голосов
/ 09 мая 2019

Дело в том, что я не заметил, что когда я создавал свой проект студии android, я не установил флажок «Использовать артефакты androidx», который автоматически заставляет ваш проект использовать новую библиотеку androidx.Androidx имеет тенденцию заменять библиотеку поддержки (см. Более подробную информацию здесь: https://developer.android.com/jetpack/androidx)

Итак, в основном, я выполнил шаги, указанные здесь , чтобы преобразовать свой проект в androidx, и теперь все работает отлично.

Спасибо за ваше время @ theapache64, теперь ваш код работает.

...