我已经扩展了android.widget.Gallery
以添加一些功能。其中一个功能是我在某些情况下只需要显示某些项目。为此,这就是我所做的。
public void displayChildViews(Integer... indices) {
boolean showAll = indices.length == 0;
if (indices.length > this.getChildCount())
throw new IllegalArgumentException(
String.format(
"Number of indices (%d) cannot be larger then the gallery child count (%d)",
indices.length, this.getCount()));
List<Integer> showIndices = Arrays.asList(indices);
for (int i = 0; i < this.getCount(); i++) {
int visibility = showAll || showIndices.contains(i) ? View.VISIBLE : View.INVISIBLE;
this.getChildAt(i).setVisibility(visibility);
}
}
这是我的问题。首先,我尝试使用this.getChildCount()
遍历子项,但它只返回了可见项目的数量(在我的例子中是图像),并且没有返回库中所有子项目的数量。所以为了解决这个问题,我使用this.getCount
返回正确数量的子项(根据适配器)。问题是我需要设置所有子项的可见性,但this.getChildAt(i)
返回可见子项的第i个子项,而不是具有正确索引的真项子项。现在任何人都可以获得真正的第i个孩子吗?
感谢