动画后更改RecyclerView的高度

时间:2014-10-31 08:49:36

标签: android animation android-recyclerview

我的DialogFragment布局如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/logo_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true">

        ...

    </FrameLayout>

    <LinearLayout
        android:id="@+id/search_container"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/logo_container"
        android:layout_above="@+id/create">

        <EditText
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <ViewFlipper
            android:id="@+id/flipper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/found_circles_count"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal" />

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/list"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />

            </LinearLayout>

        </ViewFlipper>

    </LinearLayout>

    <Button
        android:id="@+id/create"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="create" />

    <Button
        android:id="@+id/cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toLeftOf="@+id/create"
        android:text="cancel" />

</RelativeLayout>

我需要为RecyclerView和整个容器的翻译制作动画。我是这样做的:

LinearLayout container = (LinearLayout) view.findViewById(R.id.search_container);
... 
int distance = *some calculations*;
container.animate().setDuration(500).yBy(distance).start();

因此所有视图都已正确设置动画,但RecyclerView及其容器的高度与动画前保持一致。我想,它是根据视图创建来衡量并保持这个大小。但是我需要这个RecyclerView在动画之后占据从根视图顶部到创建按钮顶部(放置在对话框底部)的所有位置。我怎么能这样做?

0 个答案:

没有答案