我的应用程序和RecyclerView
运行良好,直到我将第二个RecyclerView
添加到片段中。由于我添加了第二个片段,因此我在片段中添加了一个ScrollView
。然后我在回收器视图中的滚动遇到了一些问题,它无法顺利滚动。在网上浏览了很多文章,包括StackOverflow,我用androidx.core.widget.NestedScrollView
更改了ScrollView
。这解决了滚动问题,但发生了一些主要问题。RecyclerView
中项目的加载花费了更多时间,当我点击顶部菜单栏上的搜索按钮时,展开搜索字段需要很长时间,有时应用程序显示"无响应"消息。有些文章说添加.setNestedScrollingEnabled=false
,我在片段onCreateView()
中添加了以下内容。但我仍然面临这个问题。
我正在使用kotlin
binding.rv_home_items.isNestedScrollingEnabled=false
binding.rv_home_categories.isNestedScrollingEnabled=false
以下是xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="@color/colorOffWhite"
android:orientation="vertical"
tools:context=".ui.fragments.HomeFragment">
<FrameLayout
android:id="@+id/framelayout_category"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_home_categories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:paddingBottom="15dp" />
<ImageButton
android:id="@+id/ibutton_show_category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="5dp"
android:background="@drawable/ic_show_category" />
</FrameLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/framelayout_category">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.denzcoskun.imageslider.ImageSlider
android:id="@+id/image_slider"
android:layout_width="match_parent"
android:layout_height="200dp"
android:visibility="gone"
app:iss_auto_cycle="true"
app:iss_corner_radius="5"
app:iss_delay="0"
app:iss_error_image="@color/colorDarkGrey"
app:iss_period="2500"
app:iss_placeholder="@color/colorDarkGrey"
app:iss_selected_dot="@drawable/default_selected_dot"
app:iss_unselected_dot="@drawable/default_unselected_dot"
tools:visibility="visible" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_home_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/image_slider"
android:layout_marginBottom="50dp" />
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>
我完全被困在我的项目上,非常感谢任何帮助
编辑:
当我启动应用程序时,它会在几秒钟内显示一条消息,指出该应用程序没有响应。
如果您有多个RecyclerView
,甚至所有都具有相同的滚动方向,似乎ConcatAdapter可能是首选解决方案。
ConcatAdapter
允许按顺序将多个适配器组合到单个RecyclerView
。