0
我想知道如何管理ListView中的視圖。如何在列表視圖中正確管理視圖
我有一個是對的ListView設置自定義適配器,該適配器將覆蓋getView方法
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = mInflater_.inflate(R.layout.news_newsentry, null);
}
final NewsItem newsItem = getItem(position);
if (newsItem != null) {
// Do stuff
}
return v;
}
但問題是,當用戶點擊一個項目,我稍微改變視圖,使其大。它運作良好,但是當物品視圖被回收時,它保持「大」的高度來顯示另一個物品。
爲了防止這種情況,我改變了代碼來創建一個新的視圖每次
變化:
View v = convertView;
if (v == null) {
v = mInflater_.inflate(R.layout.news_newsentry, null);
}
通過
View v = mInflater_.inflate(R.layout.news_newsentry, null);
現在的問題是,當項目從消失列表並重新出現(列表滾動),視圖是全新的,高度設置爲「小」。
我的問題然後:如何管理項目視圖以保持其屬性,而不會搞亂其他視圖和視圖回收?
好的,這似乎是一個解決方案,但:如果可以有任何配置每個列表項目。我是否必須自己跟蹤所有這些信息? – Jonas 2011-03-16 19:32:45