Android 折叠工具栏不使用RecyclerView折叠
我试图让下面的代码正常工作,但当使用recyclerView时,工具栏不会崩溃;但是,当我用NestedScrollView包围recyclerView时,它不会崩溃。我是否应该更改某些内容以避免添加NestedScrollViewAndroid 折叠工具栏不使用RecyclerView折叠,android,xml,android-layout,Android,Xml,Android Layout,我试图让下面的代码正常工作,但当使用recyclerView时,工具栏不会崩溃;但是,当我用NestedScrollView包围recyclerView时,它不会崩溃。我是否应该更改某些内容以避免添加NestedScrollView <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=
<?xml version="1.0" encoding="utf-8"?>
<layout
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"
>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView_issue_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:listitem="@layout/issue_item"
/>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="100dp"
>
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="@color/colorPrimary"
app:expandedTitleGravity="top"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:title="All Issues"
/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
更改您的RecyclerView的布局高度,使之与父视图@BenP匹配。说和 将RecyclerView移出AppBarLayout。因此,它将是:
<?xml version="1.0" encoding="utf-8"?>
<layout
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"
>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="100dp"
>
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="@color/colorPrimary"
app:expandedTitleGravity="top"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:title="All Issues"
/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView_issue_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:listitem="@layout/issue_item"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
在我的例子中,这是因为我在XML中错误地将
android:nestedScrollingEnabled=“false”
用于回收器视图。也许你是通过编程设置的
删除该行后,它会按预期工作。对于我的情况,我需要设置
回收器。nestedScrollingEnabled=true
不在顶级回收器上,但是在顶级回收器中膨胀的一个视图中的回收器上。将回收器视图上的布局高度
更改为匹配父视图
相同的结果,没有折叠将布局移出appbar。我已经复制了有问题的代码,因此如果没有您的回答,我永远不会注意到这一点。非常感谢你@DmitrySmolyaninov啊哈,我自己从代码的另一部分复制粘贴了代码。我花了一段时间才意识到。很高兴能帮忙!