2015-05-15 8 views
5

eşleşmeyenGörüntüle Ben <strong>yatay recyclerview</strong> bulunan üst genişliği

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

    <ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="225dp" 
     android:id="@+id/ibRecommendedCoverPhoto" 
     android:src="@drawable/sample_cover_image" 
     android:background="@android:color/darker_gray" 
     android:scaleType="centerCrop"/> 
</LinearLayout> 

Hem kontrollerin genişlikleri ancak match_parent ayarlanır, ImageButton ebeveyninin genişliğini "eşleştirmeyecek".

I genişliği kaydedilir:

recyclerView Yükseklik: 338
recyclerView genişliği: 480

Bu onCreateViewHolder recyclerview yöntemi şöyledir:

@Override 
    public RecommendedVendorsViewHolder onCreateViewHolder(ViewGroup vg, int viewType) { 
    View v = LayoutInflater.from(vg.getContext()).inflate(R.layout.item_recommended_list, vg, false); 

görünümün kaydedilir yükseklik ve genişlik:

Görünüm v Yükseklik: 338
Görünüm v Genişlik: 327

programlı genişliği ayarı çalıştı:

@Override 
    public RecommendedVendorsViewHolder onCreateViewHolder(ViewGroup vg, int viewType) { 
     View v = LayoutInflater.from(vg.getContext()).inflate(R.layout.item_recommended_list, vg, false); 
     RecyclerView.LayoutParams params= (RecyclerView.LayoutParams)v.getLayoutParams(); 
     params.width=480; 
     v.setLayoutParams(params); 

     return vh; 
    } 

Görünüm v Yükseklik: 338
Görünüm v Genişlik: 480

o görünümü her zaman yeniden boyutlandırın.

+1

Bu sorunu çözdünüz mü? Buna benzer bir şeyle karşılaşıyorum ama nasıl çözüleceğimi bilmiyorum :( – Gintama

+1

Buna bir çözüm buldunuz mu? – prasunnair

+1

Henüz bir sorunla karşılaşmadım Bir viewpager kullanmayı hatırlıyorum. Lütfen daha fazla soru sorun insanlar bunu cevaplamakla ilgilenecekler –

cevap

-2

i sorun olduğunu düşünüyorum

vg.getContext()

Let ApplicationContext değişim veya CustomAdapter

bağlam geçmesi den
+1

Denedim, işe yaramıyor. Android belgesinde de vg.getContext kullanmanız gerektiğini gösteriyor. Şuna bir bakın: https://developer.android.com/training/material/ lists-cards.html Yine de teşekkürler! –

2

düzgün konumlandırılması gelince RecyclerView çok bok olduğu Bu ve/veya onun çocuk görüşleri. temelde çocuk görünümü içinde hem yükseklik & genişliği için match_parent yerini

@Override 
public ViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) { 
    final LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 
    final View v = inflater.inflate(R.layout.item, parent, false); 

    // match_parent won't work for RecyclerView (sigh) 
    final ViewGroup.LayoutParams lp = v.getLayoutParams(); 
    lp.width = parent.getWidth(); 
    lp.height = parent.getHeight(); 
    v.setLayoutParams(lp); 

    return new ViewHolder(v); 
} 

deneyin. Özel durumunuz için sadece genişliği ayarlayabilirsiniz.

İlgili konular