多个RecyclerView无法在同一片段

时间:2017-02-02 05:37:26

标签: android android-recyclerview fragment android-adapter

我的RecyclerView中有两个Fragment

 <LinearLayout                  
             android:layout_width="match_parent"
             android:layout_height="match_parent" 
             android:orientation="vertical"
             android:background="#E6E6E6">  
<RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
      <TextView
        android:id="@+id/textview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textColor="#000"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        android:gravity="left"
        android:text="Trending"
        />
    <android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="none"
    android:layout_below="@+id/textview"
   />

    <TextView
        android:id="@+id/popular_textview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textColor="#000"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        android:gravity="left"
        android:text="Popular"
        android:layout_below="@+id/recycler_view"
        android:layout_marginTop="200dip"
        />
    <android.support.v7.widget.RecyclerView
    android:id="@+id/popular_recycler_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="none" 
    android:layout_below="@+id/popular_textview"/> 
 </RelativeLayout>

但它只是第一个RecyclerView正在运作。第二个是不可见的。 我的Fragment代码是这样的:

private void populatRecyclerView(ArrayList<HashMap<String, String>> imageList) {

    ArrayList<Data_Model> arrayList = new ArrayList<>();
    for (int i = 0; i < imageList.size(); i++) {
        HashMap<String, String> vector = imageList.get(i);
        category = vector.get("deal_category");
        if (category.equalsIgnoreCase("17")) {
            String imageurl = vector.get("deal_thumbnail");
            String title = vector.get("title");
            Uri uri = Uri.parse(imageurl);
            String filename = uri.getLastPathSegment();
            arrayList.add(new Data_Model(title, filename));
            RecyclerView_Adapter adapter = new RecyclerView_Adapter(getActivity(), arrayList);
            recyclerView.setAdapter(adapter);// first set adapter on recyclerview
            adapter.notifyDataSetChanged();// Notify the adapter
        } else {
            String imageurl = vector.get("deal_thumbnail");
            String title = vector.get("title");
            Uri uri = Uri.parse(imageurl);
            String filename = uri.getLastPathSegment();
            arrayList.add(new Data_Model(title, filename));

            RecyclerView_Popular_Adapter popular_adapter = new RecyclerView_Popular_Adapter(getActivity(), arrayList);
            popular_recyclerView.setAdapter(popular_adapter);// second set adapter on recyclerview
            popular_adapter.notifyDataSetChanged();// Notify the adapter
        }
    }
}

即使第二个TextView也没有出现。我在评论中指定了第一个和第二个适配器。那么如何使第二个RecyclerView也可见?

1 个答案:

答案 0 :(得分:1)

您无法对layout_weight的孩子使用RelativeLayout。您的父视图应位于LinearLayout下方;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

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

        <TextView
            android:id="@+id/textview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:paddingBottom="8dp"
            android:paddingTop="8dp"
            android:text="Trending"
            android:textColor="#000"
            android:textSize="20sp" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textview"
            android:scrollbars="none" />

    </RelativeLayout>

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

        <TextView
            android:id="@+id/popular_textview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:paddingBottom="8dp"
            android:paddingTop="8dp"
            android:text="Popular"
            android:textColor="#000"
            android:textSize="20sp" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/popular_recycler_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/popular_textview"
            android:scrollbars="none" />

    </RelativeLayout>

</LinearLayout>

enter image description here

希望它有所帮助!