0

是否可以访问不在屏幕上的gridview的子视图并进行更改?

我在遍历gridview时尝试使用getCount() ,但是当它到达不可见的孩子(在屏幕显示上)时,他们失去了他们的类型(他们应该是ImageViews),我不能对他们做任何事情;我想改变他们的形象。

一段代码;

GridView gridView = (GridView) findViewById(R.id.grid_view);
Integer items = gridView.getCount();
Log.d(TAG, "1)child count::"+((ViewGroup)gridView).getChildCount());
Log.d(TAG, "2)get count::"+items);
for (int i=0; i < items; ++i) {
    View nextChild = ((ViewGroup)gridView).getChildAt(i);
    if (nextChild instanceof ImageView) {
        Log.i(TAG, i+" is imageview");
        ((ImageView) nextChild).setImageResource(R.drawable.arrow2);
    } else {
        Log.i(TAG, i+" is NOT imageview");
    }
}
4

1 回答 1

1

您应该在适配器的getView()方法中设置图像资源。然后代码将在它们变得可见时运行,而不是在它们进入屏幕之前尝试强制它。

于 2013-04-02T15:10:40.990 回答