具有Android约束布局的组可见性1.1.3无法正常工作



我只是试图使用具有Android约束布局的组视图来更轻松地设置几个视图的可见性。问题是我将小组的可见性变为消失或看不见的事情,它无能为力。

我已经在此线程中尝试了Pavan响应的步骤:在约束布局中切换链组可见性。但这对我没有任何改变。(我认为这是因为我不使用beta版本(

这是我的依赖项应用程序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"/>

您正在从错误的软件包中导入Group小部件。

更改

<android.support.constraint.Group

to

<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>

事实是,我没有注意到,当我创建我的Android Studio项目时,我没有选中"使用Androidx Artifacts"框,它会自动使用您的项目使用新的Androidx库。Androidx倾向于替换支持库(请参阅此处的更多详细信息:https://developer.android.com/jetpack/androidx(

基本上,我遵循此处给出的步骤将我的项目转换为Androidx,现在一切正常。

感谢您的时间 @theapache64,现在您的代码正在工作。

最新更新