我试图获得此效果,如果用户滚动RecyclerView
某个布局与回收者一起滚动并消失在Toolbar
后面。
使用CoordinatorLayout
可以获得类似的行为,这可以通过设置
app:layout_behavior="@string/appbar_scrolling_view_behavior"
在上述Recycler上,正在做
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
另外,如果我将第二个孩子放在AppBarLayout
内,并将app:layout_scrollFlags
设置为它,则获得的效果是相同的,两个布局都与Recycler一起滚动。
我想要实现的是将第一个孩子(工具栏)固定在适当位置,让第二个孩子(LinearLayout
)滚动并隐藏在工具栏后面。不幸的是,我无法解决这个问题。
不使用第3部分库可以吗? 提前致谢,对不起我的英语。
答案 0 :(得分:1)
最后,我找到了一种实现此行为的方法,方法是将CoordinatorLayout包含在LinearLayout中,然后通过将工具栏移至extrnal(根)级别,使第二个子项(LinearLayout)成为第一个子项。
以前的阶层:
<CoordinatorLayout>
<AppBarLayout>
<ToolBar>
<LinerarLayout>
之后的阶层:
<LinearLayout>
<ToolBar>
<CoordinatorLayout>
<AppBarLayout>
<LinearLayout>
例如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="48dp" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorSecondaryLight"
android:orientation="vertical"
app:layout_scrollFlags="scroll"/>
</com.google.android.material.appbar.AppBarLayout>
.
.
.
.
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
希望有帮助!