params.getBehaviour() returns 空值
params.getBehaviour() returns null value
我正在玩新的 Android 设计库。 CollapsingToolbarLayout 工作得很好。但是,我无法将工具栏的默认状态设置为已折叠。
我正在尝试实施显示的解决方案 and
我在 Activity 的 onResume 中调用以下代码:
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 返回的行为是空的。
我的 xml 与 的代码相同,只是我没有使用抽屉,而 CordinatorLayout 是我的根布局。
编辑:我早些时候尝试将 AppBarLayout.Behavior 切换到 AppBarLayout.ScrollingViewBehavior 并将 AppBarLayout 的 layout_behavior 设置为 @string/appbar_scrolling_view_behavior,但它导致了奇怪的布局。
罗宾的回答很有效。作为补充,还可以在 xml 中使用 AppBarLayout 中的以下标记设置行为:
app:layout_behavior="android.support.design.widget.AppBarLayout$Behavior"
您必须先设置布局行为。
只需在您的 onCreate 方法中使用以下代码:
((CoordinatorLayout.LayoutParams) YOUR_LAYOUT.getLayoutParams()).setBehavior(新AppBarLayout.Behavior() {});
我正在玩新的 Android 设计库。 CollapsingToolbarLayout 工作得很好。但是,我无法将工具栏的默认状态设置为已折叠。
我正在尝试实施显示的解决方案
我在 Activity 的 onResume 中调用以下代码:
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 返回的行为是空的。
我的 xml 与
编辑:我早些时候尝试将 AppBarLayout.Behavior 切换到 AppBarLayout.ScrollingViewBehavior 并将 AppBarLayout 的 layout_behavior 设置为 @string/appbar_scrolling_view_behavior,但它导致了奇怪的布局。
罗宾的回答很有效。作为补充,还可以在 xml 中使用 AppBarLayout 中的以下标记设置行为:
app:layout_behavior="android.support.design.widget.AppBarLayout$Behavior"
您必须先设置布局行为。
只需在您的 onCreate 方法中使用以下代码:
((CoordinatorLayout.LayoutParams) YOUR_LAYOUT.getLayoutParams()).setBehavior(新AppBarLayout.Behavior() {});