2015-07-01 14 views
11

Sto creando RecycleView con alcuni elementi. Così ho bisogno di ottenere la larghezza e l'altezza di quella fila di RecycleViewOttieni larghezza e altezza di una riga in RecycleView - Android

Qui sto creando RecycleView:

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.... 

E questa è la mia ArtikliAdapter:

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

Come posso ottenere larghezza e altezza di una riga? Come posso ottenere larghezza e altezza di una riga?

+0

Ciao, hai già risolto il problema? Ho ottenuto il valore di ritorno 0. –

risposta

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 

     } 
    }); 
    ..... 
} 

Spero che questo ti possa aiutare !!

+4

Restituisce 0. Ma in realtà voglio ottenere larghezza e altezza in Attività, non in Adapter ... – KiKo

+1

Utilizza l'interfaccia per inviare questi dati di nuovo all'attività –

+0

Sì, restituisce 0. Non funziona @AmrutBidri . Puoi spiegare maggiori dettagli/ –

Problemi correlati