在我的具體問題中,我有一個列表視圖。在此列表視圖中,我希望列表的第一行總是具有綠色的背景顏色。我做到這一點使用下面的代碼:如何在列表視圖的getview方法中引用第一個列表視圖中的可見視圖?
listView.setSelection(3);
View element = listView.getChildAt(0);
element.setBackgroundColor(Color.GREEN);
的大背景下,我使用自定義適配器來填充列表視圖,爲行得到回收,綠色是在其出現新行冗餘。以下是我對getView方法的代碼:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View first = listView.getChildAt(0);
if (convertView == null){
convertView = inflater.inflate(R.layout.list, parent, false);
}
TextView textView = ((TextView) convertView.findViewById(R.id.textView2));
textView.setText(lyrics[position]);
if(){ // Need to reference the first row here.
textView.setBackgroundColor(Color.GREEN);
}else {
textView.setBackgroundColor(Color.WHITE);
}
return convertView;
}
}
所以在我的情況下,我需要知道在ListView第一個可見的位置,以便我可以撤消重複的背景色。有什麼辦法可以達到這個目標?只要可行,我願意改變邏輯。
剛listView.getFirstVisiblePosition()? – c0ming