Android recycleview 动态设置 itemvie
2019-06-17 本文已影响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