我有两个片段,每个片段都有各自的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
答案 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>