我有一个自定义视图,其中将线性布局作为父级。自定义视图有 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_width="wrap_content"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UnusedAttribute">
<TextView
style="@style/text_black_10_regular"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:visibility="visible"
android:visibility="gone"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
/>
</LinearLayout>
您可以使用默认禁用的布局转换类型CHANGING。要在代码中启用它:
ViewGroup layout = (ViewGroup) findViewById(R.id.deliveryByLayout);
LayoutTransition layoutTransition = layout.getLayoutTransition();
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);