【发布时间】:2016-02-25 13:38:22
【问题描述】:
我有 CoordinatorLayout 和里面的以下项目:
- 带有可折叠工具栏的AppBarLayout;
- 带有一些内容的 NestedScrollView
我想以编程方式向上滚动我的 NestedScrollView,直到折叠可折叠工具栏。
我试过这样的代码:
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
if (behavior != null) {
behavior.onNestedPreScroll(coordinatorLayout, appBarLayout, nestedScrollView, 0, 1000, new int[2]);
}
但它只是向上滚动并折叠 AppBar 布局本身,而 NestedScrollView 保持在原位。
那么,问题是如何向上滚动 NestedScrollView 并使 Collapsable Toolbar 折叠?
我知道这个问题与 Coordinator Layout 的行为有关,但我不知道遗漏了什么。
这是确切的布局:
<android.support.design.widget.CoordinatorLayout
android:id="@+id/event_coordinator_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<!-- some content -->
<android.support.v7.widget.Toolbar
android:id="@+id/quick_return_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!-- some content -->
</android.support.v4.widget.NestedScrollView>
【问题讨论】:
标签: android android-layout material-design android-coordinatorlayout