没有填充滚动动画背景,我做错了什么?
我正在使用 - 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
答案 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"