Android:如何在一个屏幕中使用RecyclerView显示两个片段

时间:2015-11-11 06:38:34

标签: android android-fragments scrollview android-recyclerview

我有两个片段,每个片段都有各自的RecyclerView列表。 每个片段的RecyclerView可能包含许多项目。因此,滚动主要是必要的。 我的问题是,如何使用ScrollView将这两个片段组合并显示在一个屏幕上,但同时,使RecyclerViews的滚动行为正常(非粘性,遵循整个屏幕的滚动)。

感谢。

编辑: 我的布局文件

<?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"
    tools:context="com.easyuni.courserecommender.ResultsActivity">

    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <include
                android:id="@+id/toolbar"
                layout="@layout/toolbar" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_below="@+id/toolbar">

                <FrameLayout
                    android:id="@+id/fragment_container_results_career"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_below="@+id/fragment_container_results_career"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="@color/divider" />

                <FrameLayout
                    android:id="@+id/fragment_container_results_courses"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />

            </LinearLayout>

        </RelativeLayout>

        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:itemIconTint="#333"
            app:itemTextColor="#333" />

    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>

截图: (注意顶部和底部滚动的RecyclerView单独) https://drive.google.com/file/d/0B-glHmJbVcwiVU41WVRHU3g2bkE/view

1 个答案:

答案 0 :(得分:2)

你可以这样做 -

在您的活动的布局文件中,您应该有两个framelayout来包含您的两个片段。

<div>  
  <input type="checkbox">
  <label for=""><span>Choice 1 the text is really long</span></label>
</div>

div { 
    position: relative; 
}
input { 
    display: inline-block;
    position: absolute;
    top:0;
    left: 0;
}
label { 
    display: inline-block;
    position: absolute;
    top:0;
    left: 1.3em;
    font-family: sans-serif;
}

然后在Activity的onCreate()方法中,您可以使用FragmentManager类将Fragment添加到FrameLayout。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/first_fragment_container"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">

    </FrameLayout>

    <FrameLayout
        android:id="@+id/second_fragment_container"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">

    </FrameLayout>
</LinearLayout>