android hide / show工具栏没有填充空间底部

时间:2015-04-15 01:02:19

标签: android android-actionbar hide toolbar swiperefreshlayout

没有填充滚动动画背景,我做错了什么?

我正在使用 - DrawerLayout - V7工具栏 - 寻呼机 - SwipeRefreshLayout - RecyclerView

活动     

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

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>

片段分页器容器

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<com.squidit.squid.ui.widget.SlidingTabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="2dp"
    android:background="@color/primaryColor"/>

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

片段内容

<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/missionSwipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"        
    />

滚动隐藏

private void hideViews() {
    mToolbar.animate().translationY(-mToolbar.getHeight()).setInterpolator(new DecelerateInterpolator(2));
    container.animate().translationY(-mToolbar.getHeight()).setInterpolator(new DecelerateInterpolator(2)).start();        
}

问题:

容器升到顶部,但之前在底部占据的空间没有填充

Ilustration:

https://drive.google.com/open?id=0B-Vxv0Qpz2dqcWp5eDVRbmd3czQ&authuser=0

1 个答案:

答案 0 :(得分:-1)

我遇到了几乎相同的问题。 隐藏工具栏和状态栏后我的布局看起来像 http://i62.tinypic.com/qowvgi.png

修改: 您可能会注意到翻译与移动视图不同。 使用动画集LayoutParams.height在所需的ValueAnimator内部调整布局大小。

mToolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
    toolbarHeight = mToolbar.getHeight();

最后

ValueAnimator anim = ValueAnimator.ofInt(toolbarHeight, 0);
    anim.setDuration(1000);
    anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            Integer value = (Integer) animation.getAnimatedValue();
            mToolbar.getLayoutParams().height = value.intValue();
            mToolbar.requestLayout();

        }
    });
    anim.start();

上面的代码隐藏了影响主要布局的工具栏以扩展自身。来自THAT QUESTION的想法。

还要确保在布局中使用 fitsSystemWindows 即将调整大小。

android:fitsSystemWindows = "true"