我正在尝试使用以下代码在我的Android应用中为视图的高度设置动画:
Animation anim = new ScaleAnimation(
1f, 1f,
1f, 2f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f);
anim.setFillAfter(true);
anim.setDuration(500);
mSearchHeader.startAnimation(anim);
这样可以很好地设置mSearchHeader
的高度,但是,我的标题下面有一个ListView
控件。我的期望是mSearchHeader
的高度扩展会压低列表视图(有效地降低列表视图高度以补偿标题的较大高度。
但是,listview的大小仍然是静态的。如何将列表视图转换为"收缩"标题扩展时?我是否还要在列表视图中添加动画?
我的XML是:
<android.support.percent.PercentRelativeLayout
android:id="@+id/main_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/windowBackground">
<RelativeLayout
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/buttonBackground">
<ListView
android:id="@+id/provider_search_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/search_view" />
....
答案 0 :(得分:0)
Animation
会产生动画幻觉,只会更改View
的矩阵,而不会更改实际视图坐标。
相反,使用另一个动画API:
mSearchHeader.animate()
.y(100)
.setDuration(500);
这会将y
值设置为100像素并更改View
坐标,最终会影响其下方的ListView
。