Android Keep视图的底部固定,同时翻译它的Y.

时间:2015-09-14 12:48:26

标签: android android-animation android-gridview android-toolbar

我有一个填充我的屏幕的视图,我设置了Y的动画,因此隐藏了它的顶部,但是我需要它的按钮保持它的状态\ n' s位置。

动画代码:

mainLayout.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start();

滚动前:

enter image description here

滚动后:

enter image description here

注意:

1)我这样做是因为我需要在滚动时隐藏工具栏。

2)我尝试了其他隐藏工具栏的方法,包括动画工具栏的高度,边距,填充,但是他们是迟钝的。

3)我试图翻译工具栏,但它在布局下方保持其位置并且不会向上移动。

更新1:

<android.support.v4.widget.DrawerLayout
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/home_drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    tools:context=".HomeActivity"
    android:cacheColorHint="@android:color/transparent"
    android:clipToPadding="false"
    >

    <!-- main view -->
    <RelativeLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/tansparent"
        android:id="@+id/home_main_layout"
        tools:context=".HomeActivity">

        <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto"
                                           android:id="@+id/home_toolbar"
                                           android:layout_width="match_parent"
                                           android:layout_height="?attr/actionBarSize"
                                           android:background="@color/category_activity_topbar_background"
                                           app:theme="@style/Theme.AppCompat"
                                           android:layout_alignParentTop="true"/>

        <com.viewpagerindicator.TabPageIndicator
            android:id="@+id/tab_indicator"
            android:layout_height="@dimen/tab_height"
            android:layout_width="match_parent"
            android:layout_below="@+id/home_toolbar"/>

        <android.support.v4.view.ViewPager
            android:id="@+id/home_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/tab_indicator"/>

        <ImageButton
            android:id="@+id/addBookButton"
            android:layout_width="@dimen/add_button_width_height"
            android:layout_height="@dimen/add_button_width_height"
            android:scaleType="centerInside"
            android:src="@drawable/add_button"
            android:background="@drawable/circles_background"
            android:adjustViewBounds="true"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="@dimen/add_button_margin_bottom"
            android:layout_marginRight="@dimen/add_button_margin_right"
            android:onClick="importNewBooksButtonMethod"/>

    </RelativeLayout>

    <!-- drawer -->
    <LinearLayout
        android:id="@+id/settingDrawer"
        android:layout_width="@dimen/setting_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:orientation="vertical"
        android:background="@color/white"
        android:clickable="true">
    </LinearLayout>
</android.support.v4.widget.DrawerLayout>

1 个答案:

答案 0 :(得分:1)

好吧,我为整个视图设置了动画,之后我将视图的边距设置为负值。工具栏获取隐藏,一切顺利无误。

homeMainLayout.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).withEndAction(new Runnable()
            {
                @Override
                public void run()
                {
                    DrawerLayout.LayoutParams params = (DrawerLayout.LayoutParams) homeMainLayout.getLayoutParams();
                    params.bottomMargin = -toolbarHeight;
                    homeMainLayout.setLayoutParams(params);
                }
            }).start();