我正在使用新的Android设计库。 CollapsingToolbarLayout完美运行。但是,我无法将工具栏的默认状态设置为Collapsed。
的解决方案我在onResume of Activity中调用以下代码:
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
if(behavior!=null)
{
Log.d("DEBUG", "Behaviour is Not Null ");
int[] consumed = new int[2];
behavior.onNestedPreScroll(coordinator, appBarLayout, null, 0, 1000,consumed);
// behavior.onNestedFling(coordinator, appBarLayout, null, 0, 10000, true);
}
else
Log.d("DEBUG", "Behaviour is Null " );
但是,params返回的行为为null。 我的xml与here的代码相同,除了我没有使用抽屉,CordinatorLayout是我的根布局。
编辑:我之前尝试将AppBarLayout.Behavior切换到AppBarLayout.ScrollingViewBehavior并将AppBarLayout的layout_behavior设置为@ string / appbar_scrolling_view_behavior,但这导致了奇怪的布局。
罗宾的回答非常好。为了补充,行为也可以使用AppBarLayout中的以下标记在xml中设置:
app:layout_behavior="android.support.design.widget.AppBarLayout$Behavior"
答案 0 :(得分:4)
您必须先设置布局行为。
只需在onCreate方法中使用以下代码:
((CoordinatorLayout.LayoutParams)YOUR_LAYOUT.getLayoutParams())。setBehavior(new AppBarLayout.Behavior(){});