2013-08-21 77 views
9

有沒有辦法在List之上插入另一個ViewListView?例如,我想要一個位於List頂部的標題欄(TextView),並在列表滾動時滾動查看視圖。我可以想到迄今爲止這樣做的兩種方式,但都是黑客行爲。帶標題的列表視圖


想法#1 - 使用假裝爲ListView的LinearLayout。但問題是你無法利用適配器提供的「智能」加載/卸載視圖。

<ScrollView> 
    <LinearLayout> 

     <TextView/> 
     <LinearLayout 
      android:orientation="vertical" /> # add ListItems here 

    </LinearLayout> 
</ScrollView> 


理念#2 - 使用哈克ArrayAdapter,用類似下面的方法getView

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    if(position == 0) 
     View view = inflater.inflate(R.layout.special_list_item, null); 
    else 
     View view = inflater.inflate(R.layout.regular_list_item, null); 

    ... 

    return vi; 
} 

回答

33

簡單。只需添加標題視圖到您的ListView

TextView textView = new TextView(context); 
textView.setText("Hello. I'm a header view"); 

listView.addHeaderView(textView); 
+5

確保在設置標題前調用'setAdapter(null);'。或者,僅在設置標題後添加適配器。 – sriramramani

+0

哇,我不知道存在! – Matt