之前没这种场景,这才发现。当一个view 被一个 Group 关联后,再单独对 view 在 xml 中设置 visibility 是无效的。
例如这个 group :
<androidx.constraintlayout.widget.Group
android:id="@+id/tool_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:constraint_referenced_ids="config_tab,iv_search,cb_select_all" />
此时再对其中一个 view 比如 cb_select_all 进行 xml 布局上的 visibility 设置会无法生效,原因是在这个布局的绘制过程中 Group 会对其关联 view 的 visibility 进行重新设置。所以解决办法是,再增加一个 Group 只关联这个 cb_select_all :
<!-- 用于处理 checkbox 的初始状态 优先级高于 tool_group --> <androidx.constraintlayout.widget.Group android:id="@+id/tool_init_cb" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone" app:constraint_referenced_ids="cb_select_all" />
在 xml 层级上 tool_init_cb 必须在 tool_group 上层,也就是必须写在 tool_group xml 代码下面。
以上。
本站由以下主机服务商提供服务支持:
0条评论