如何有2个framelayout,其中一个最终作为scrollview,另一个作为recyclerview

时间:2017-07-17 03:33:17

标签: android android-layout android-recyclerview android-scrollview

所以我有一个布局,有两个framelayout根据情况填充。我把它们都放在一个滚动视图中,这样它们都可以完全显示出来。

第一个framelayout指的是另一个布局,它是一个带有长文本视图的简单线性布局

第二个framelayout将引用一个Recyclerview视图

请注意 1-我不希望第一个framelayout作为我的recyclerview的标题,也不想添加到recyclerview。

2-我需要将它们分开,因此为什么我有2个framelayouts。

问题 - 1.它只显示第一个framelayout,它指的是具有长文本视图的线性布局,并且只有当我的可见性消失时才会显示第二个framelayout及其recyclerview

  1. 它只显示两个如果我将两个framelayout都设置为较小的高度,但我需要高度为wrap_content

      

        <LinearLayout
            android:id="@+id/competition_detail_dropdown_scrollview_linearlayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <android.support.v4.widget.NestedScrollView
                android:layout_width="match_parent"
                android:layout_marginRight="10dp"
                android:layout_marginLeft="10dp"
                android:layout_height="wrap_content"
                >
                    <FrameLayout
                        android:id="@+id/competition_detail_dropdown_frame"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
    
                        ></FrameLayout>
            </android.support.v4.widget.NestedScrollView>
    
    
                <FrameLayout
                    android:id="@+id/frame_fragment"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
    
                    ></FrameLayout>
    
    
    
    
    
    
        </LinearLayout>
    
    </ScrollView>
    

2 个答案:

答案 0 :(得分:1)

您仅在FrameLayout中包含了第一个NestedScrollViewNestedScrollView应涵盖两者。

我建议您像这样更改XML:

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

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_height="wrap_content">

        <FrameLayout
            android:id="@+id/competition_detail_dropdown_frame"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <FrameLayout
            android:id="@+id/frame_fragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

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

</LinearLayout>

答案 1 :(得分:0)

试试这个 使用NestedScrollView应该涵盖两个Framelayout。  并设置recyclerview android:nestedScrollingEnabled="false"

的属性
 <LinearLayout       
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_height="wrap_content">

   <LinearLayout       
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

    <FrameLayout
        android:id="@+id/competition_detail_dropdown_frame"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <FrameLayout
        android:id="@+id/frame_fragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

  </LinearLayout>
 </android.support.v4.widget.NestedScrollView>