Android recycleview 动态设置 itemview 宽高相等(正方形)

我原本将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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、适用场景 ListViewListview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用...
    Geeks_Liu阅读 13,695评论 1 28
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,704评论 1 92
  • 翻译自“Auto Layout Guide”。 1 入门 1.1 理解自动布局 自动布局根据视图层级结构中视图上的...
    lakerszhy阅读 9,202评论 3 26
  • 园林春景耀人瞳, 花木亭台布局工。 何奈匠心雕饰美, 不如山野数枝红。
    啸巍阅读 3,038评论 2 9
  • 渺远如东方地平线 从迤逦的鸡鸣声里 姗姗而来 你 带泪的祈祷 从清晨布谷的歌声 直到午夜夏虫的浅唱 夏至未至 菊花...
    惊鸿掠影来阅读 3,856评论 4 40

友情链接更多精彩内容