gre*_*gaj 5 android android-animation android-layout android-linearlayout android-fragments
我有一个带有几个视图的列表(容器),当单击折叠/展开按钮时,我想隐藏并再次显示。
到目前为止没问题,现在我想为嵌套视图的隐藏和显示设置动画,我不想使动画复杂化,我使用默认的动画。
这就是为什么我将 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>
Run Code Online (Sandbox Code Playgroud)
子视图布局:
<?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>
Run Code Online (Sandbox Code Playgroud)
这就是我处理显示和隐藏的方式;
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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |