我原本將itemview 的最外層布局自定義為寬高相等的控件,但是發(fā)現(xiàn)最后呈現(xiàn)時總是在每一行的第一個itemview 內(nèi)容呈現(xiàn)上有問題,具體表現(xiàn)為底部有空隙,后改為如下動態(tài)方式
@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 需要你傳進來。
補充:
這么改之后我這邊是仍有問題,就是橫豎屏切換后,已經(jīng)顯示的item拿不到最新屏幕寬度,造成其高度不變,寬度隨屏幕變化。
解決:
- 在屏幕切換事件中調(diào)用adapter的notifyDataSetChanged()
- 改 mGridLayoutManager.getWidth() 為screen 的 width