android - 如何获取 GridView 的行数?

android - 如何获取 GridView 的行数?

因为我最初回答了一个重复的问题,所以在这里添加重复的答案。

我在我的一个自定义 GridView 子类上添加了这个实现,它按预期工作。我检查了 GridView 类的声明字段,至少在 API 8 上,它们确实已经有一个名为的字段mNumColumns(这是 API 18 返回的内容getNumColumns())。他们可能没有将字段名称更改为其他名称,然后又在 API 8 和 18 之间更改,但我没有检查。

@Override

public int getNumColumns() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

return super.getNumColumns();

} else {

try {

Field numColumns = getClass().getSuperclass().getDeclaredField("mNumColumns");

numColumns.setAccessible(true);

return numColumns.getInt(this);

} catch (Exception e) {

return 1;

}

}

}

@Override 不会导致任何错误,因为它只是一个安全检查注释 AFAIK。

我也不知道是否有任何反对建议这样做而不是使用单独的getNumColumnsCompat()方法(如@cottonBallPaws 回答),但我发现它像这样非常整洁。

相关阅读

古人说年龄不用数字代替?那是怎么告诉别人自己的年龄呢!
365完美体育官网入口

古人说年龄不用数字代替?那是怎么告诉别人自己的年龄呢!

📅 07-21 👁️ 8842
word文档手机保存方法
365比分足球官网

word文档手机保存方法

📅 07-25 👁️ 7587
怎么退出或解散QQ炫舞的舞团?
365比分足球官网

怎么退出或解散QQ炫舞的舞团?

📅 07-26 👁️ 431