使用动画重置AppBarLayout折叠状态

时间:2015-11-06 15:10:52

标签: android android-support-library androiddesignsupport

在我的第一个屏幕中,我的AppBarLayout具有滚动行为。但是在第二个屏幕上,我通过调用AppBarLayout来重置setExpanded(true, true)的滚动状态。现在我想要实现的是当我返回第一个屏幕时,我想要回到第一个屏幕上的appbar的滚动状态。

我没有设法做到这一点,但找到了两个解决方法。

首先

appBar.setExpanded(false, true);

这将完全折叠带有动画的appbar,但我想将它折叠到以前的百分比。

第二

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBar;
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();

toolbarState = behavior.onSaveInstanceState(coordinatorLayout, appBar); // in onDestroyView
...
behavior.onRestoreInstanceState(coordinatorLayout, appBar, toolbarState); // in onViewCreated

这将滚动到正确的百分比,但不会使用动画。

我也尝试拨打onNestedFling,但这总是完全折叠了appbar。

有没有办法实现这个目标?

0 个答案:

没有答案