gpt4 book ai didi

Android:当键盘打开并覆盖网格时,gridview 的子项为空

转载 作者:行者123 更新时间:2023-11-30 03:31:09 26 4
gpt4 key购买 nike

我有一个由 31 个单元格组成的 GridView 。用户可以选择单元格的任意组合,然后单击按钮以保存他们的选择。一旦他们单击保存按钮,就会出现一个对话框,询问他们下一步要做什么。在这个对话框中是一个编辑 TextView 。当用户在编辑文本框内单击时,键盘就会出现。当发生这种情况时,31 个单元格中只有 21 个在屏幕上可见,而当我尝试调用 GridView 类的 getChildrenCount() 方法时,我只看到 21 个子单元格。有人可以解释为什么会发生这种情况以及我可以做些什么来消除这个问题吗?我附上了图片,希望能澄清问题。下面我粘贴了一段代码,我试图在其中获取 gridview 的子项数。

protected Set<String> getSelectedFrequencies() {
Set<String> selectedFrequencies = new HashSet<String>();
for(int i = 0; i < gridView.getChildCount(); i++) {
ViewGroup gridChild = (ViewGroup) gridView.getChildAt(i);
for(int k = 0; k < gridChild.getChildCount(); k++) {
if( gridChild.getChildAt(k) instanceof Button ) {
if(gridChild.getChildAt(k).isSelected()) {
selectedFrequencies.add(gridChild.getChildAt(k).getTag().toString());
}
}
}
}
return selectedFrequencies;
}

代码没有什么特别之处。 Image capture of GridView before dialog appears and keyboard pops up Image capture of GridView when keyboard pops up

最佳答案

您使用的是平移或调整大小的 softInputMode 吗?用平底锅永远不会发生。调整大小后,可能只有 21 个适合屏幕,因此 gridView 仅创建 21 个子级,并在您滚动时进行 View 交换。如果您不知道,listview 和 gridview 只会创建适合屏幕所需数量的 View 。当您滚动时,它只会将新位置的数据加载到现有 View 中。

关于Android:当键盘打开并覆盖网格时,gridview 的子项为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461578/

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