美文网首页代码片段分享
Android recycleview 动态设置 itemvie

Android recycleview 动态设置 itemvie

作者: 花艺荣 | 来源:发表于2019-06-17 12:19 被阅读0次

我原本将itemview 的最外层布局自定义为宽高相等的控件,但是发现最后呈现时总是在每一行的第一个itemview 内容呈现上有问题,具体表现为底部有空隙,后改为如下动态方式

@Override
   public void onBindViewHolder(final ViewHolder holder, final int position) { //override(horizontalSize, verticalSize)

       ViewGroup.LayoutParams parm = holder.itemView.getLayoutParams();
       parm.height =
               mGridLayoutManager.getWidth()/mGridLayoutManager.getSpanCount()
               - 2*holder.itemView.getPaddingLeft() - 2*((ViewGroup.MarginLayoutParams)parm).leftMargin;
    ...

注意mGridLayoutManager 需要你传进来。

补充:
这么改之后我这边是仍有问题,就是横竖屏切换后,已经显示的item拿不到最新屏幕宽度,造成其高度不变,宽度随屏幕变化。

解决:

  • 在屏幕切换事件中调用adapter的notifyDataSetChanged()
  • 改 mGridLayoutManager.getWidth() 为screen 的 width

相关文章

网友评论

    本文标题:Android recycleview 动态设置 itemvie

    本文链接:https://www.haomeiwen.com/subject/abxafctx.html