2016-12-16 29 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是你想要設置可見的意見。切換文本視圖的任何對象,它實際上是。 –

相關問題