我有一个关于 android 布局转换框架的问题。特别是我想实现一种效果,即布局的某个部分根据另一个视图的可见性向下或向上滑动。
想象一下下面的布局。(请忽略此处的嵌套线性布局;))
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/changingView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<View
android:id="@+id/changingView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
<LinearLayout
android:id="@+id/movingView"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="false"/>
</LinearLayout>
现在我想要实现的是,当changedView1和changedView2改变它们的可见性时,movingView向上或向下滑动。
通过为父布局启用LayoutTransition.CHANGING,滑动部分可以正常工作。但这有一个副作用,当添加或删除项目时, movingView也会被动画化,因为这个布局改变了它的边界。这就是我的问题,因为这会导致看起来非常奇怪的动画。
所以回到我的问题。有没有一种方法可以保持滑动动画,而无需对movingView上的布局绑定更改进行动画处理?
在movingView 上禁用layoutTransitions显然没有帮助,因为这只会影响子视图的动画。我还尝试在父布局上启用和禁用不同的 LayoutTransitions,但到目前为止还没有达到预期的效果。
如果我可以添加更多详细信息,请告诉我,否则我希望有人可以帮助我。
提前致谢!