window 中的动画 EditText
Animate EditText out of a window
我有一个 RelativeLayout,下面有一个 "search bar" (EditText) 和一个 ListView:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/etSearch"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:inputType="text" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="0dp"
android:clipToPadding="false"
android:listSelector="@drawable/listview_selector" >
</ListView>
</LinearLayout>
在用户 "searches" 之后,我希望 EditText 动画出屏幕,ListView 推到顶部。我整理了一张我需要的 非常 粗略的 GIF:
有没有人知道我如何才能做到这一点?谢谢
更新
我找到了如何使 EditText 动画离开屏幕的方法:
slide_out_top.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="600"/>
</set>
然后像这样在 EditText 上使用它:
mSlideOutTop = AnimationUtils.loadAnimation(this, R.anim.slide_out_top);
et.startAnimation(mSlideOutTop);
但随后 ListView 保持在其当前高度。我想要的是在 EditText 动画出来时让 ListView 延伸到顶部。
你可以在ViewGroup中添加TranslateAnimation(适合你的是LinearLayout),y轴移动的距离是editText View的高度。然后在需要时触发此动画。 (更新:只是觉得这样可能会在底部创建一个空白栏,坏主意)
我还有一个棘手的想法。
在 ListView 中设置 EditText 视图的位置为 0 ,然后只需调用 smoothScrollToPostion(1) 方法即可滚动。
看到这可能对你有帮助
smoothScrollToPositionFromTop() is not always working like it should
我有一个 RelativeLayout,下面有一个 "search bar" (EditText) 和一个 ListView:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/etSearch"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:inputType="text" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="0dp"
android:clipToPadding="false"
android:listSelector="@drawable/listview_selector" >
</ListView>
</LinearLayout>
在用户 "searches" 之后,我希望 EditText 动画出屏幕,ListView 推到顶部。我整理了一张我需要的 非常 粗略的 GIF:
有没有人知道我如何才能做到这一点?谢谢
更新
我找到了如何使 EditText 动画离开屏幕的方法:
slide_out_top.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="600"/>
</set>
然后像这样在 EditText 上使用它:
mSlideOutTop = AnimationUtils.loadAnimation(this, R.anim.slide_out_top);
et.startAnimation(mSlideOutTop);
但随后 ListView 保持在其当前高度。我想要的是在 EditText 动画出来时让 ListView 延伸到顶部。
你可以在ViewGroup中添加TranslateAnimation(适合你的是LinearLayout),y轴移动的距离是editText View的高度。然后在需要时触发此动画。 (更新:只是觉得这样可能会在底部创建一个空白栏,坏主意)
我还有一个棘手的想法。
在 ListView 中设置 EditText 视图的位置为 0 ,然后只需调用 smoothScrollToPostion(1) 方法即可滚动。 看到这可能对你有帮助 smoothScrollToPositionFromTop() is not always working like it should