[英]Animate EditText out of a window
我有一个带有“搜索栏”(EditText)和其下的ListView的RelativeLayout:
<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>
用户“搜索”之后,我希望EditText在屏幕外进行动画处理,并将ListView推到顶部。 我整理了一份我需要的非常粗略的GIF:
有人对我如何做到这一点有想法吗? 谢谢
UPDATE
我发现了如何使用以下方法使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保持其当前高度。 我想要的是ListView在EditText动画时扩展到顶部。
您可以将TranslateAnimation添加到ViewGroup(对您来说是LinearLayout),y轴移动距离是editText视图的最高距离。 然后在需要时触发此动画。 (更新:只是认为这种方式可能会在底部创建一个空白栏,不好的主意)
我还有另一个棘手的主意。
在位置0的ListView中设置EditText视图,然后只需调用smoothScrollToPostion(1)方法即可滚动。 看到这可能会帮助您SmoothScrollToPositionFromTop()并非总是像应该的那样工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.