LinearLayout 中的 AnimateLayoutChanges=true 在 ViewPager2 中不起作用
Posted
技术标签:
【中文标题】LinearLayout 中的 AnimateLayoutChanges=true 在 ViewPager2 中不起作用【英文标题】:AnimateLayoutChanges= true in LinearLayout does't work in ViewPager2 【发布时间】:2021-12-31 23:23:21 【问题描述】:我有一个以 LinearLayout 作为父级的自定义视图。自定义视图有 2 个子视图。一个默认可见,另一个在单击第一个可见子项时可见。我在父线性布局中添加了标签 android:animateLayoutChanges="true" ,以便在显示隐藏的孩子时它应该动画。所以我在片段中的回收站视图项目中使用了这个自定义视图。每当我在自定义视图中显示或隐藏任何子视图时,它都会完美地动画。但是当我在 ViewPager2 中使用相同的片段时,相同的回收器。它既不显示动画也不显示视图。下面是自定义视图的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/deliveryByLayout"
android:layout_
android:layout_
android:animateLayoutChanges="true"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UnusedAttribute">
<TextView
style="@style/text_black_10_regular"
android:layout_
android:layout_
tools:visibility="visible"
android:visibility="gone"
/>
<ImageView
android:layout_
android:layout_
android:contentDescription="@null"
/>
</LinearLayout>
【问题讨论】:
【参考方案1】:您可以使用默认禁用的布局转换类型 CHANGING。在代码中启用它:
ViewGroup layout = (ViewGroup) findViewById(R.id.deliveryByLayout);
LayoutTransition layoutTransition = layout.getLayoutTransition();
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
【讨论】:
以上是关于LinearLayout 中的 AnimateLayoutChanges=true 在 ViewPager2 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
相当于Android SDK上LinearLayout中的“溢出”属性?
如何删除GridView内LinearLayout中的空白?