我有一个包含情侣视图的列表(容器)我想在点击折叠/展开按钮时隐藏并再次显示。
到目前为止没有问题,现在我想隐藏和显示我的嵌套视图动画,我不想复杂化动画,我选择了默认设置。
这就是为什么我添加了android:animateLayoutChanges =" true"对于容器布局,这在显示/展开视图时效果很好,但在隐藏/折叠视图时看起来很糟糕。
这种行为背后有什么特别的原因吗?
以下代码和示例:
代码
容器布局
<LinearLayout
android:id="@+id/izdelek_podrponud_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:animateLayoutChanges="true"
>
</LinearLayout>
子视图布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/spacing_medium"
android:paddingBottom="@dimen/spacing_medium"
android:gravity="center_vertical">
<View
android:layout_width="5dp"
android:layout_height="5dp"
android:background="@color/colorPrimary"/>
<TextView
android:id="@+id/row_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/spacing_small"
android:textSize="@dimen/font_size_60px"
android:textColor="@color/black"/>
</LinearLayout>
这就是我处理显示和隐藏的方式;
private void showViews(LinearLayout container, int visible, boolean show) {
if (container.getChildCount() > visible) {
for (int i = visible; i < container.getChildCount(); i++) {
if (show) {
container.getChildAt(i).setVisibility(View.VISIBLE);
} else {
container.getChildAt(i).setVisibility(View.GONE);
}
}
}
}