Material Design SearchBar随RecyclerView滚动收起失效问题求助
Material Design SearchBar随RecyclerView滚动自动收起失效
我希望Material Design SearchBar在RecyclerView向下滚动时自动收起/折叠,参考官方指南后仍未实现效果。目前只有将RecyclerView嵌套进NestedScrollView时,SearchBar才会随滚动收起,但这会引发性能问题——RecyclerView的所有条目会被一次性绑定/渲染。我不想采用这种方式,请问遗漏了什么配置?
Activity布局代码
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/topAppBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" app:title="Test" app:navigationIcon="@drawable/ic_navigate_back"/> </com.google.android.material.appbar.AppBarLayout> <fragment android:id="@+id/nav_host_fragment_activity_standalone" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="0dp" app:defaultNavHost="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/appBarLayout" /> </androidx.constraintlayout.widget.ConstraintLayout>
Fragment布局代码
<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout 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"> <!-- NestedScrollingChild goes here (NestedScrollView, RecyclerView, etc.). --> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recUserlist" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:backgroundTint="@color/surface_900"> <com.google.android.material.search.SearchBar android:id="@+id/search_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Username" /> </com.google.android.material.appbar.AppBarLayout> <com.google.android.material.search.SearchView android:id="@+id/searchview" android:layout_width="match_parent" android:layout_height="match_parent" android:hint="Username" app:layout_anchor="@id/search_bar"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recFilteredUserlist" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> </com.google.android.material.search.SearchView> </androidx.coordinatorlayout.widget.CoordinatorLayout>
内容的提问来源于stack exchange,提问作者Dieter27
相关产品推荐
相关产品推荐

