2015-07-01 15 views
11

Bazı öğelerle RecycleView oluşturuyorum. Bu yüzden RecycleView yaratıyorum İşte RecycleViewBir satırda Genişlik ve Yükseklik Get BackcleView - Android

biri sıranın genişliğini ve yüksekliğini almak gerekir:

RecyclerView rvSmetki = (RecyclerView) findViewById(R.id.rvArtikli); 
    rvSmetki.setLayoutManager(new GridLayoutManager(this, 3);); 
    rvSmetki.setAdapter(new ArtikliAdapter(this)); 

    // Here I want to get width and height.... 

Ve bu benim ArtikliAdapter geçerli:

public class ArtikliAdapter extends RecyclerView.Adapter<ArtikliAdapter.ViewHolder> { 

    private static Context context; 

    private LayoutInflater inflater; 
    private ArrayList<Artikl> artikliList; 

    public ArtikliAdapter(Context context) { 
     this.context = context; 
     inflater = LayoutInflater.from(context); 
     artikliList = LogInActivity.getArtiklList(); 
    } 

    @Override 
    public ArtikliAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View row = inflater.inflate(R.layout.artikli_row, parent, false); 
     return new ArtikliAdapter.ViewHolder(row); 
    } 

    @Override 
    public void onBindViewHolder(ArtikliAdapter.ViewHolder holder, int position) { 
     Artikl currentArtikl = artikliList.get(position); 

     holder.tvNaziv.setText(currentArtikl.getNaziv()); 
     holder.tvCena.setText("Цена: " + currentArtikl.getProdaznaCena()); 
    } 

    @Override 
    public int getItemCount() { 
     return artikliList.size(); 
    } 

    static class ViewHolder extends RecyclerView.ViewHolder { 

     private RelativeLayout rlArtikl; 
     private TextView tvNaziv; 
     private TextView tvCena; 

     public ViewHolder(View itemView) { 
      super(itemView); 

      rlArtikl = (RelativeLayout) itemView.findViewById(R.id.rlArtikl); 
      tvNaziv = (TextView) itemView.findViewById(R.id.tvNaziv); 
      tvCena = (TextView) itemView.findViewById(R.id.tvCena); 
     } 
    } 
} 

Image

Bir satırın genişliğini ve yüksekliğini nasıl alabilirim? Bir satırın genişliğini ve yüksekliğini nasıl alabilirim?

+0

Merhaba, Sorunu henüz çözdünüz mü? 0 dönüş değeri var –

cevap

15
@Override 
public void onBindViewHolder(final MyAdapter.MyViewHolder holder, int position) 
{ 
..... 
    holder.itemView.post(new Runnable() 
    { 
     @Override 
     public void run() 
     { 

      int cellWidth = holder.itemView.getWidth();// this will give you cell width dynamically 
      int cellHeight = holder.itemView.getHeight();// this will give you cell height dynamically 

     } 
    }); 
    ..... 
} 

Umarım bu size yardımcı olacaktır!

+4

0 döndürür. Ama aslında ben genişlik ve yükseklik almak için değil, etkinlikte, Bağdaştırıcı ... – KiKo

+1

Bu veriyi yeniden etkin hale getirmek için arabirimi kullan –

+0

Evet, 0 döndürür. Çalışmıyor @AmrutBidri . Daha fazla ayrıntı/ –

İlgili konular