Android RecyclerView - 在适配器中设置ImageView高度

时间:2015-04-07 13:24:59

标签: android android-adapter android-recyclerview

我正在使用RecyclerView并想要在水平列表中渲染图像。主要问题是,我想在加载时将图像缩放到RecyclerView的高度,如http://developer.android.com/training/displaying-bitmaps/load-bitmap.html所示

parent中的RecyclerViewonCreateViewHolder)报告错误的getMeasuredHeight。它太大了(完整的屏幕高度?)。我将片段的Adapter方法中的onResume添加到RecyclerView

如何获得RecyclerView的高度,其当前屏幕高度的2/3(可能会更改为新的布局文件)?

编辑:似乎parent高度正确。

2 个答案:

答案 0 :(得分:0)

您可以使用OnPreDrawListener。在监听器中,您可以获得RecyclerView的测量高度并触发负载。

答案 1 :(得分:0)

以下是您可以做的事情:

  public class MyViewHolder extends RecyclerView.ViewHolder{

     ImageView mImageView;
     int imageHeight;
     public MyViewHolder(View view){
         super(view);

         mImageView = (ImageView) view.findViewById(R.id.imageView);

         // set the imageHeight from the ImageView
         imageHeight = mImageView.getHeight();
     }

     // Create this public method
     public int getImageHeight(){
         return imageHeight;
     }

  }

然后访问ViewHolder中的onBindViewHolder

  @Override
public void onBindViewHolder(MyViewHolder row, int position) {

   //.... Get the ImageView height
   int imageHeight = row.getImageHeight();
}