在我的第一个屏幕中,我的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。
有没有办法实现这个目标?