android - params.getBehaviour() 返回空值

标签 android toolbar android-design-library

我正在玩新的 Android 设计库。 CollapsingToolbarLayout 工作得很好。但是,我无法将工具栏的默认状态设置为已折叠。

我正在尝试实现显示的解决方案 herehere

我在 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 代码与 here 相同,除了我没有使用抽屉,而 CordinatorLayout 是我的根布局。

编辑:我早些时候尝试将 AppBarLayout.Behavior 切换为 AppBarLayout.ScrollingViewBehavior 并将 AppBarLayout 的 layout_behavior 设置为 @string/appbar_scrolling_view_behavior,但它导致了奇怪的布局。

Robin 的回答很有效。作为补充,该行为还可以在 AppBarLayout 中使用以下标记在 xml 中设置:

app:layout_behavior="android.support.design.widget.AppBarLayout$Behavior"

最佳答案

您必须先设置布局行为。

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

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

关于android - params.getBehaviour() 返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067082/

相关文章:

android - 使用 findViewById 对明显随机 View 的随机 ClassCastExceptions

qt - 带有 float 工具栏的 QDialog

ios - 如何让工具栏保持在顶部,就像 iPhone 上的 map 应用程序一样?

android - CoordinatorLayout 子项不是全屏

android - 动态设置时折叠工具栏的标题不会改变?

android - TextInputLayout 作为文本区域 - Android

java - Android 蓝牙发现 API 无法在 Android 6.0 上运行

screen - 我可以检查时钟应用程序是否使屏幕变暗吗?

.net - 工具栏上的文本按钮

android - 显示 SnackBar 时,按钮必须充当 FAB