如何获取GridView的行数?

🏷️ 365bet娱乐场中文 🕒 2025-09-27 09:16:52 👤 admin 👁️ 4273 ❤️ 937
如何获取GridView的行数?

我昨晚必须解决这个问题,这对我很有效。它查找孩子的宽度,并假设所有单元格都具有相同的宽度,将GridView的宽度除以孩子的宽度。(getColumnWidth()在早期的API中也不可用,因此需要解决办法)。

代码语言:javascript运行复制private int getNumColumnsCompat() {

if (Build.VERSION.SDK_INT >= 11) {

return getNumColumnsCompat11();

} else {

int columns = 0;

int children = getChildCount();

if (children > 0) {

int width = getChildAt(0).getMeasuredWidth();

if (width > 0) {

columns = getWidth() / width;

}

}

return columns > 0 ? columns : AUTO_FIT;

}

}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)

private int getNumColumnsCompat11() {

return getNumColumns();

}然而,有一些重要的限制需要注意。

它只有在GridView布局后才能工作,并且只有当它实际添加了一些视图时才能工作。这不会考虑使用setHorizontalSpacing()添加的任何单元格间距。如果你使用水平间距,你可能需要调整它,在我的例子中是,我没有任何填充或额外的宽度。如果这样做,您将需要调整这一点,以确保除法最终得到正确的答案。

相关文章

车灯升级透镜测评:KUS九尾狐心狐,棱镜LED亮度超越激光
365提款一直在处理中

车灯升级透镜测评:KUS九尾狐心狐,棱镜LED亮度超越激光

📅 08-16 👁️ 5211
法国夺冠首功非姆巴佩 昔日刺头已成最稳核心
365天第三季无删除完整翻译

法国夺冠首功非姆巴佩 昔日刺头已成最稳核心

📅 08-21 👁️ 780
Faker与T1续约至2029年 LOL电竞传奇将持续书写
365bet娱乐场中文

Faker与T1续约至2029年 LOL电竞传奇将持续书写

📅 08-29 👁️ 2742