2017-02-02 9 views
5

Kullanıcı tarafından eklenen öğelerle birlikte bir Recyclerview var. Döndürme işlevini uyguluyorum, çünkü cihazı açtığımda, geri dönüşüm ekranı boş görünüyor.Recyclerview, ekranı döndürdükten sonra yeniden boyutlandırmıyor

Uygulamayı hata ayıklamak için, döndürme işleminden önce ve sonra bütünlüğü kontrol ediyorum ve ArrayList aynı boyuta sahip. Bence sorun, Geri Dönüşümcüsünün setNestedScrollingEnabled(false)'udur. Bunu, rv'de bir kaydırma göstermek istemediğim için ayarladım.

Sorun şu ki,: Ben portre modundayım ve 3 öğe ekliyorum, bu bana geri dönüşüm göstergesinde mükemmel gösteriyor. Görüntüyü kontrol edin: i manzara ekranı döndürdüğünüzde

Portrait

, recyclerview ArrayList 3 öğe var ama yükseklik öylesine değişmez yalnızca bir öğe olması apppears. Yani

enter image description here

, ben bu nasıl çözmek?

Recyclerview:

itemsRv = (RecyclerView) findViewById(R.id.itemsRv); 
itemsRv.setNestedScrollingEnabled(false); 
itemAutoCompleteAdapter = new ItemAutoCompleteAdapter(this); 
if(items ==null){ 
    items = new ArrayList<>(); 
} 
itemsAdapter = new ItemsRowAdapter(this, items, new ItemsRowAdapter.itemsRowListener() { 
    @Override 
    public void editarItemOnClick(View v, int position) { 
    editar_item(items.get(position), position); 
    } 

    @Override 
    public void eliminarItemOnClick(View v, final int position) { 

    } 
}); 
itemsRv.setHasFixedSize(true); 
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this); 
itemsRv.setLayoutManager(mLayoutManager); 
itemsRv.setAdapter(itemsAdapter); 

Düzen: i başarılı olamadı wrap_content ve match_parent için android:layout_height değiştirmeye çalıştık

<android.support.v7.widget.CardView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="8dp"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="8dp"> 

       <android.support.v7.widget.AppCompatTextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="left" 
        android:layout_marginBottom="4dp" 
        android:text="Items" 
        android:textSize="16sp" 
        android:textStyle="bold" /> 

       <LinearLayout 
        android:id="@+id/header_rv_items" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" 
        android:visibility="visible"> 

        <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:orientation="horizontal" 
         android:weightSum="4"> 

         <TextView 
          android:id="@+id/textView3" 
          android:layout_width="@dimen/widthColumnTable" 
          android:layout_height="wrap_content" 
          android:layout_weight="2.8" 
          android:textStyle="bold" 
          android:text="Descripción" /> 

         <TextView 
          android:id="@+id/textView5" 
          android:layout_width="@dimen/widthColumnTable" 
          android:layout_height="wrap_content" 
          android:layout_weight="0.5" 
          android:gravity="right" 
          android:textStyle="bold" 
          android:text="Cantidad" /> 

         <TextView 
          android:id="@+id/textView8" 
          android:layout_width="@dimen/widthColumnTable" 
          android:layout_height="wrap_content" 
          android:layout_weight="0.7" 
          android:gravity="right" 
          android:textStyle="bold" 
          android:text="Precio total" /> 
         <TextView 
          android:text="Acciones" 
          android:textStyle="bold" 
          android:layout_width="100dp" 
          android:gravity="right" 
          android:layout_height="wrap_content" 
          /> 


        </LinearLayout> 


       </LinearLayout> 

       <android.support.v7.widget.RecyclerView <----- HERE IT IS 
        android:id="@+id/itemsRv" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        /> 


       <Button 
        android:id="@+id/btn_01_agregar_item" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="left" 
        android:layout_marginTop="20dp" 
        android:background="@drawable/border_spinner" 
        android:gravity="left|center_vertical" 
        android:paddingLeft="16dp" 
        android:paddingRight="16dp" 
        android:text="Ingrese el código o descrpción del producto" 
        android:textAllCaps="false" 
        android:textColor="#616161" /> 


      </LinearLayout> 
     </android.support.v7.widget.CardView> 

.

Çok teşekkür ederim!

cevap

3

Bir çözüm buldum. I bu

itemsRv.setHasFixedSize(true); 
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this); 

itemsRv.setLayoutManager(mLayoutManager); 
RelativeLayout.LayoutParams lp = 
       new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); //<--- ADD 
itemsRv.setLayoutParams(lp);//<--- ADD 
itemsRv.setAdapter(itemsAdapter); 

eklemek Ve ben https://stackoverflow.com/a/34543165/3200714

fikrim var, mükemmel çalışıyor

<RelativeLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 
    <android.support.v7.widget.RecyclerView 
    android:id="@+id/itemsRv" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
</RelativeLayout> 

kodu:

ben böyle bir RelativeLayout içine Recyclerview koymak
İlgili konular