gpt4 book ai didi

android - 如何获取 GridView 的行数?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:52:51 26 4
gpt4 key购买 nike

有没有办法获取 Android API 级别 8 的 GridView 的行数?

最佳答案

我昨晚不得不解决这个问题,它对我有用。它查找 child 的宽度并假设所有单元格具有相同的宽度,将 GridView 的宽度除以 child 的宽度。 (getColumnWidth() 在早期的 API 中也不可用,因此采用了解决方法)。

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 之后,并且只有当它实际添加了一些 View 时,它才会起作用。
  • 这没有考虑使用 setHorizo​​ntalSpacing() 添加的任何单元格间距。如果您使用水平间距,您可能需要调整它以解决它。
  • 在我的例子中,我没有任何填充或额外的宽度需要考虑。如果这样做,您将需要对此进行调整,以确保该部门最终得出正确的答案。

关于android - 如何获取 GridView 的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com