从窗口中动画EditText

时间:2015-01-22 16:14:27

标签: java android jquery-animate

我有一个带有#34;搜索栏的#Relative; (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>

用户&#34;搜索&#34;我希望EditText在屏幕外动画,ListView推送到顶部。我把我需要的非常粗略的GIF放在一起:

enter image description here

有没有人知道如何才能做到这一点?感谢

更新

我发现了如何使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动画时扩展到顶部。

1 个答案:

答案 0 :(得分:1)

您可以将TranslateAnimation添加到ViewGroup(适用于LinearLayout),y轴移动距离是editText视图的高度。然后在需要时触发此动画。 (更新:只是想到这种方式可能会在底部创建一个空白栏,坏主意)

我有另一个棘手的想法。

在ListView中设置EditText视图,位置为0,然后只需调用smoothScrollToPostion(1)方法进行滚动。 看到这可能对你有帮助 smoothScrollToPositionFromTop() is not always working like it should