gpt4 book ai didi

android - 如何在一个 ConstraintLayout 中对多个 View 进行分组

转载 作者:IT老高 更新时间:2023-10-28 23:38:27 31 4
gpt4 key购买 nike

我在 ConstraintLayout 中添加了 3 个按钮。我添加了一个按钮来禁用或启用这些按钮。

如果我使用的是普通的 LinearLayout。我可以将所有按钮放在一个线性布局中并启用或禁用该特定布局。

但我正在使用 ConstraintLayout。所以我需要禁用或启用所有这些按钮,我相信在 ConstraintLayout 中一定有一种方法可以对不同的 View 进行分组。

请指导我如何在 ConstriantLayout 中对 View 进行分组

enter image description here

  <Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="16dp"
android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginLeft="16dp" />

<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="16dp"
android:layout_marginStart="8dp"
app:layout_constraintLeft_toRightOf="@+id/button"
android:layout_marginLeft="8dp"
app:layout_constraintTop_toTopOf="@+id/button" />

<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button3"
app:layout_constraintTop_toTopOf="@+id/button2"
android:layout_marginEnd="16dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="16dp"
android:layout_marginStart="8dp"
app:layout_constraintLeft_toRightOf="@+id/button2"
android:layout_marginLeft="8dp" />

最佳答案

是的,我知道您可以使用线性布局来处理可见性,但我认为不能启用/禁用 View ,如果我错了,请纠正我。所以现在在 ConstraintLayout 中,我们也可以使用 Group

处理特定 View 组的可见性

This is new feature introduced in ConstraintLayout which is currentlyin Beta version.

如何将 beta ConstraintLayout 添加到项目中,请按照以下步骤操作

在项目 gradle 文件中添加 maven 支持,如下所示

allprojects {
repositories {
maven { url 'https://maven.google.com' }
jcenter()
}
}

然后在app gardle依赖中添加ConstarintLayout库依赖

compile 'com.android.support.constraint:constraint-layout:1.1.0-beta3'

现在您必须在 ConstraintLayout 中添加组,如下所示

<android.support.constraint.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="button7,button3,button2"
android:id="@+id/group" />

在组引用 ID 中的位置

app:constraint_referenced_ids="button7,button3,button2"

包含您要处理运行时的逗号分隔 View ID,因此在 Activity 中您只需按如下方式绑定(bind) Group 并处理可见性

import android.support.constraint.Group; //import statement in activity

Group group=(Group)findViewById(R.id.group);//bind view from xml
group.setVisibility(View.VISIBLE);//this will visible all views
group.setVisibility(View.GONE);//this will set Gone to all views
group.setVisibility(View.INVISIBLE);//this will set INVISIBLE to all view

编辑:ConstraintLayout 1.1.0 稳定版于 2018 年 4 月 12 日发布 https://androidstudio.googleblog.com/2018/04/constraintlayout-110.html

implementation 'com.android.support.constraint:constraint-layout:1.1.0'

编辑:Android X如果有人使用 android x 包,你可以在这里找到包信息

https://developer.android.com/jetpack/androidx/migrate

并使用:

<androidx.constraintlayout.widget.Group />

关于android - 如何在一个 ConstraintLayout 中对多个 View 进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118674/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com