2017-02-02 12 views
0

私はRecyclerViewを私のFragmentに持っています。複数のRecyclerViewが同じフラグメント内で動作しない

<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が作動しているだけです。 2番目は見えません。

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もappearing.Iコメントに第一及び第二のアダプタを指定していません。 私Fragmentコードは次のようです。だからどのように秒RecyclerViewも見えるように?

+0

条件を指定したため、1つのインスタンス(つまり、常に(true)を意味します)に表示されるのは、 –

+0

の場合はelseループになります。私はそれを十字架でチェックしました。 – Mhandroid

+0

recycleview.ifの高さを修正しようとすると、recyclerviewに条件付きで値を設定しているのはなぜですか? –

答えて

1

RelativeLayoutの子にはlayout_weightを使用できません。あなたの親のビューは、下記のように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

それが役に立てば幸い!

+0

ええ、私はlayout_weightを削除してもまだ動作しません。 – Mhandroid

+0

それだけでは、あなたのRecylerViewsをグループごとに分離し、このグループの親に対してlayout_weightを設定する必要があります。 – oyenigun

+0

私の事例を更新しました。試してみるべきです。 – oyenigun

関連する問題