2015-07-01 55 views
11

我使用一些項目創建RecycleView。所以,我需要得到的RecycleView在RecycleView中獲取一行的寬度和高度 - Android

這裏一排的寬度和高度,我創建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.... 

這是我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

如何獲得一行的寬度和高度? 如何獲得一行的寬度和高度?

+0

嗨,你解決了這個問題了嗎?我得到了返回值0. –

回答

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 

     } 
    }); 
    ..... 
} 

我希望這會幫助你!

+4

它返回0.但實際上我想要在Activity中獲取寬度和高度,而不是在Adapter中... – KiKo

+1

使用接口將此數據發回活動 –

+0

是的,它返回0.不工作@AmrutBidri 。你能解釋更多細節/ –