Android GridLayout中的单元格边缘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android GridLayout中的单元格边缘相关的知识,希望对你有一定的参考价值。

android中,可以轻松创建具有下一个边距的网格列表:

enter image description here

我找到了适用于ios的解决方案,但它不会在单元格和父视图之间添加边距,仅在单元格之间添加边距

let itemSpacing: CGFloat = 3
let itemsInOneLine: CGFloat = 2
flow.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
let width = UIScreen.main.bounds.size.width - itemSpacing * CGFloat(itemsInOneLine - 1) //collectionView.frame.width is the same as  UIScreen.main.bounds.size.width here.
flow.itemSize = CGSize(width: floor(width/itemsInOneLine), height: width/itemsInOneLine)
flow.minimumInteritemSpacing = 3
flow.minimumLineSpacing = 3

enter image description here

我该如何解决?

附:我不想对任何东西进行硬编码,因此它适用于所有iPhone / iPad设备

答案

将常量为5的前导,尾随和顶部约束添加到集合视图中。这将解决您的保证金问题

另一答案
let itemSpacing: CGFloat = 3
let itemsInOneLine: CGFloat = 2
let flow = UICollectionView().collectionViewLayout as! UICollectionViewFlowLayout
flow.sectionInset = UIEdgeInsets(top: itemSpacing, left: itemSpacing, bottom: itemSpacing, right: itemSpacing)
flow.minimumInteritemSpacing = itemSpacing
flow.minimumLineSpacing = itemSpacing
let cellWidth = (UIScreen.main.bounds.width - (itemSpacing * 2) - ((itemsInOneLine - 1) * itemSpacing)) / itemsInOneLine
flow.itemSize = CGSize(width: cellWidth, height: cellWidth)

以上是关于Android GridLayout中的单元格边缘的主要内容,如果未能解决你的问题,请参考以下文章

android gridlayout用法

从 GridLayout 中删除单元格

请教:android gridlayout 如何设置列宽和行高?

GridLayout 中的 JComponents 越来越小

如何在 GridLayout - QML 中移动单元格?

QML GridLayout 不遵守我指定的单元格排列