android – params.getBehaviour()返回null值

我正在玩新的Android设计库. CollapsingToolbarLayout完美运行.但是,我无法将工具栏的默认状态设置为Collapsed.

我正在尝试实施herehere所示的解决方案

我在我的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"

解决方法:

您必须先设置布局行为.

只需在onCreate方法中使用以下代码:

((CoordinatorLayout.LayoutParams)YOUR_LAYOUT.getLayoutParams()).setBehavior(new AppBarLayout.Behavior(){});

上一篇:android – 如何更改工具栏SearchView下划线颜色为灰色


下一篇:如何以编程方式更改android工具栏中的图标?