简体   繁体   English

滚动视图中的两个回收器视图

[英]Two recycler view inside a scroll view

I can use nested scroll view to have two recycler view but issue with that is recycler view is no more recycler view as it inflates all the view at once and if I add a on scroll listener to any recycler view then you will see all items are visible at once.我可以使用嵌套滚动视图来拥有两个回收器视图,但问题是回收器视图不再是回收器视图,因为它一次膨胀所有视图,如果我将滚动监听器添加到任何回收器视图,那么你会看到所有项目都是一下子可见。

Is there any way where I can achieve scrollability of both recycler view at once.有什么方法可以同时实现两个回收器视图的可滚动性。

Use Case:用例:

I need to show scheduled events on top of history of events.我需要在事件历史记录之上显示预定事件。 I just want that both behaves as one big recycler view maintained individually.我只是希望两者都表现为一个单独维护的大型回收器视图。 I don't mind showing all scheduled events before history of events.我不介意在事件历史之前显示所有预定的事件。

 <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    android:id="@+id/pullToRefresh"
    app:layout_constraintTop_toBottomOf="@+id/view_meetings_above_divider"
    app:layout_constraintBottom_toTopOf="@+id/inviteContactImage"
    android:layout_width="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_height="0dp">
    <androidx.core.widget.NestedScrollView
        android:id="@+id/nestedScrollView"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:paddingBottom="@dimen/dp_30"
        >
        <LinearLayout android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <androidx.recyclerview.widget.RecyclerView
                android:orientation="vertical"
                android:id="@+id/upcomingScheduledEvent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                />
            <View
                android:id="@+id/view_history_above_divider"
                android:layout_width="match_parent"
                android:layout_height="8dp"
                android:background="#EEEEEE"/>
            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recentEvents"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:visibility="visible"
                android:nestedScrollingEnabled="true"
                android:scrollbarStyle="outsideOverlay"
                android:scrollbars="vertical" />
            <LinearLayout
                android:id="@+id/noRecentEvents"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical"
                android:layout_marginTop="@dimen/dp_10"
                android:visibility="gone">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="@dimen/px_32"
                    android:text="@string/find_your_colleagues_and_friends_to_chat"
                    android:textColor="@color/black"
                    android:textSize="@dimen/dp_14" />

                <TextView
                    android:id="@+id/id_startSearch"
                    android:layout_width="125dp"
                    android:layout_height="36dp"
                    android:layout_marginTop="20dp"
                    android:background="@drawable/no_meeting_round_button_drawable"
                    android:gravity="center"
                    android:text="@string/chat_now"
                    android:textColor="@color/action_bar_color"
                    android:textSize="12sp" />
            </LinearLayout>
        </LinearLayout>
    </androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

I used a heterogeneous recycler view with three views.我使用了具有三个视图的异构回收器视图。 First is the scheduled events which are always on top, then the separator and then the recent event views.首先是始终位于顶部的预定事件,然后是分隔符,然后是最近的事件视图。 Read more about multiple views in a recycler view or heterogeneous recycler view.阅读更多关于回收者视图或异构回收者视图中的多个视图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM