2016-12-16 50 views
0

我有一个自定义的gridView项目布局,包含一个imageView和一个带有背景的textView。 textView作为选择器,因为我不想使用默认的。Android的GridView如何取消选择一个位于当前视图之外的项目(当前可见项)

只要GridView的所有项目都适合屏幕,此方案就可以正常工作。但是对于可滚动gridView的情况:如果我选择一个项目,然后在向下滚动后选择另一个项目,则首先选择的项目不会被取消选择,因为它不是的视图的一部分。

这里是我的MainActivity用来选择代码:

final int size = gridView.getChildCount(); 
for(int i = 0; i < size; i++) 
{ 
    if(i == position && gridView.getChildAt(i) instanceof TextView) 
     gridView.getChildAt(i).setVisibility(View.VISIBLE); 
    else 
     gridView.getChildAt(i).setVisibility(View.INVISIBLE); 
} 

我想知道如何让TextView的(我选择为GridView)看不见的,当它位于视图之外。

谢谢你们

回答

0

保持每个TextView的引用列表(在Array,HashSet的,或别的东西),然后遍历它,并确保每一个被选择另一个之前取消。

+0

尝试了你的建议,不知道我是否做得正确。你能指导我完成吗? “确保在选择另一个之前取消选择每个”..无法取消选择视图外的任何内容 – OrangePeel

+0

ArrayList textViews = new ArrayList (); TextView a = new TextView(context); GridLayout.add(a); textViews.add(a); 然后当你想选择新的东西: for(TextView t:textViews){ t.setVisible(View.INVISIBLE); } 然后最后设置你想要看到的视图。 –

+0

这是假设textviews是你想要设置可见的意见。切换文本视图的任何对象,它实际上是。 –