2017-06-06 80 views
-1

當用戶觸摸某個項目時,需要突出顯示可展開列表視圖的子視圖。我希望顏色保持不變,而不僅僅是提供視覺反饋。我能夠與實現這一目標:突出顯示子視圖Expandable ListView

expandablelistview_options.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
      v.setBackgroundColor(Color.BLUE); 
      return false; 
     } 
    }); 

但我的問題是,如果我選擇在同父視圖另一個孩子,前面的選擇沒有得到未加亮。

我該如何解決這個問題?

回答

1

你可以做的就是按照這個辦法:

1)點擊另存爲int或對象的最新項目的引用或位置。

2)然後你就可以做出這樣的函數,並調用它的項目的點擊,並通過位置:

int lastItem = 0; 

public void highlight(int clickedItem){ 
clickedItem.setBackground(//highlight color); 
lastItem.setBackground(//unhighlight color); 
lastItem = clickedItem; 
} 

3)這將幫助您節省參考,並可以很容易地處理最後和當前項目。這只是我在處理這種情況時使用的一種方法。你必須使用這種方法。

希望這會有所幫助。