应用程序的一部分我正在处理的行为与android shell完全相同,显示了几个带有文本标签图标的页面。用户可以在页面之间滑动以查找所需元素。我在每个页面都使用PagerView和GridView。
每页的内容应完全适合可见区域,不能滚动。如何计算每页图标数量的问题?
接下来的问题是,我无法调用pagerView.getHeight(),因为实际的布局计算还没有执行,所以我的结果为0。
更新:
似乎我无法很好地描述我的问题,我会尝试提供更简单的情况,假设我的活动状态栏位于顶部,而某些按钮栏位于底部,两者都是固定高度。中间的整个剩余区域由GridView使用。
网格视图应该显示矩形图标,我需要计算的是它可以显示多少个图标而不滚动(因为剩余的图标将显示在下一个活动中)。
答案 0 :(得分:0)
您可以尝试以下内容:
public int countElements(ViewGroup group) {
int count = 0;
for (int i = 0; i < group.getChildCount(); i++) {
View v = layout.getChildAt(i);
Class c = v.getClass();
if (c == *Icon*) {
count++;
}
}
return count;
}
如果您有内部视图,可以检查c是否是GroupView并以递归方式调用该方法。
答案 1 :(得分:0)
至于你的第二个问题,请尝试在onCreate中使用它:
private void calculateSize(int height, int width){
int rows = Math.floor(height/imageHeight);
int columns = Math.floor(width/imageWidth);
//do something with numbers
}
ViewTreeObserver vto = pagerView.getViewTreeObserver();
if(vto.isAlive()){
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
vto.removeGlobalOnLayoutListener(this);
calculateSize(gridView.getHeight(), gridView.getWidth());
}
});
}