2017-02-03 2 views
0

Я хочу показать мой RecyclerView внутри CardView со списком, один за другим, но мой RecyclerView или CardView, я думаю, не может установить ширину, чтобы соответствовать родительскому.Почему мой RecyclerView с CardView не может установить ширину в соответствии с родительским?

Это моя активность Компоновка:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:card_view="http://schemas.android.com/tools" 
    android:gravity="center_horizontal"> 

<android.support.v7.widget.RecyclerView 
android:id="@+id/rexyclerview" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
card_view:cardUseCompatPadding="true" 
card_view:cardElevation="5dp" 
card_view:cardCornerGroup="5dp" 
android:scrollbars="vertical" 
android:layout_marginLeft="10dp" 
android:layout_marginRight="10dp" 
android:layout_marginTop="10dp" 
android:layout_marginBottom="10dp"> 
</android.support.v7.widget.RecyclerView> 

</RelativeLayout> 

И This Is My CardView Layout:

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

    <android.support.v7.widget.CardView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/cardview" 
     android:elevation="3dp" 
     card_view:cardUseCompatPadding="true" 
     card_view:cardCornerRadius="1dp" 
     card_view:cardElevation="4dp" 
     > 
     <!-- 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
     --> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      > 
      <TextView 
      android:layout_width="130sp" 
      android:layout_height="wrap_content" 
      android:id="@+id/tmpkode" 
      android:textSize="11sp" 
      android:maxLines="1" 

      /> 
     <TextView 
      android:layout_width="70sp" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@id/tmpkode" 
      android:layout_marginLeft="10dp" 
      android:maxLines="1" 
      android:textSize="11sp" 
      android:id="@+id/tmptgla" 

      android:textAlignment="center" 
      /> 
      <TextView 
       android:layout_width="50sp" 
       android:layout_height="wrap_content" 
       android:textSize="11sp" 
       android:layout_toRightOf="@id/tmptgla" 
       android:id="@+id/tmpnamaz" 
       android:maxLines="1" 
       android:layout_marginLeft="10dp" 
       android:textAlignment="center" 
       /> 
      <TextView 
       android:layout_width="100sp" 
       android:textAlignment="center" 
       android:layout_toRightOf="@id/tmpnamaz" 
       android:layout_height="wrap_content" 
       android:maxLines="1" 
       android:textSize="11sp" 
       android:layout_marginLeft="10dp" 

       android:id="@+id/namasup"/> 
      <TextView 
       android:layout_width="130sp" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@+id/namasup" 
       android:textSize="11dp" 
       android:id="@+id/nopenawar" 
       android:textAlignment="center"/> 

     </RelativeLayout> 
     <!-- </LinearLayout> --> 
    </android.support.v7.widget.CardView> 
</LinearLayout> 

Мой адаптер:

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){ 
     View Itemview = LayoutInflater.from(parent.getContext()).inflate(R.layout.card, parent, false); 
     return new ViewHolder(Itemview); 
    } 

Моя активность:

setContentView(R.layout.approvalpersetujuan); 
     recyclerView = (RecyclerView)findViewById(R.id.rexyclerview); 
     data = new ArrayList<>(); 
     Prosesdataserver(0); 
     gridLayoutManager = new GridLayoutManager(this, 5); 
     recyclerView.setLayoutManager(gridLayoutManager); 
+0

Я думаю, что диспетчер компоновки в вашем просмотре ресайклеров - это макет сетки, вы можете показать код, который устанавливает менеджер макетов для вашего вида ресайклера? –

+0

Да, я использую gridlayout, подождите минуту. –

+0

@ShashankUdupa i edit my question –

ответ

1

Если вам нужен менеджер компоновки сетки вы можете попробовать это

gridLayoutManager = new GridLayoutManager(this, 1); 

Или вы можете пойти для горизонтального менеджера линейной компоновки, как так

layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) 

и установить его на ваш взгляд ресайклера

+0

Да, это работает, спасибо. поэтому, 'gridLayoutManager = новый GridLayoutManager (это, x);' x - строка справа? –

+1

Это число столбцов, но если у вас будет количество столбцов как 1, вы можете просто использовать линейный менеджер макетов, как я показал. –

+0

уверен, спасибо, сэр. –

Смежные вопросы