gpt4 book ai didi

android:MotionLayout 子项的可见性更改

转载 作者:太空狗 更新时间:2023-10-29 12:59:21 33 4
gpt4 key购买 nike

我一定是遗漏了 android: 动态布局中的可见性变化。这是我的布局的简化版本。

<MotionLayout>
<ImageView android:id="@+id/HeaderBackground" />
Bunch of image views, Text views that are constrainted to the HeaderBackground.
<RecyclerView android:visibility="visible">
<EditText android:visibility="visible">
<CustomViewGroup1 android:visibility="gone">
</MotionLayout>

我有一个 motionScreen,它根据回收器 View 设置一个 Transition onswipe,以降低 HeaderBackground 的高度并隐藏一些图像/ TextView (即折叠工具栏)。但是,如果出现某些 fatal error ,我想在 RecyclerView 的顶部/前面显示 CustomViewGroup1,但是将 RecyclerView 的可见性切换为消失并将 CustomViewGroup1 切换为可见不会显示 CustomViewGroup1。

我可以将 CustomViewGroup 组移出 MotionLayout 并添加一个框架布局作为 Activity 的根并隐藏整个 MotionLayout。但这不太理想,因为我必须复制工具栏和图标。所以我想问题是关于可见性变化和潜在的 z 排序?

我正在使用 androidx.constraintlayout:constraintlayout:2.0.0-beta2

最佳答案

事实证明,这是我对 MotionLayout 的工作方式缺乏经验。默认情况下,MotionLayout 控制其中所有 View 的可见性。但是您可以使用 app:visibilityMode="ignore" 选择退出 subview 属性 and 定义 <ConstraintSet> 中的 View

以我为例 <CustomViewGroup1>看起来像这样……

<Constraint
android:id="@id/CustomViewGroup1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/HeaderBackground"
app:layout_constraintVertical_weight="1"
app:visibilityMode="ignore" />

这在 both collasped 和 expended ConstraintSets 中定义相同,因为我不希望它在回收器 View 滚动时移动/动画。

感谢 John Hoford 在另一个 channel 中提供的建议。

关于android:MotionLayout 子项的可见性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168071/

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