2013-08-21 7 views
9

Listの上に別のViewを挿入する方法はListViewにありますか?たとえば、タイトルバー(TextView)がListの上にあり、リストがスクロールするときに表示範囲外にスクロールします。これまでのところ、2つの方法が考えられますが、どちらもハックです。タイトルリスト付きリストビュー


アイデア#1 - ListViewであると思われるLinearLayoutを使用します。しかし、問題は、アダプターが提供するビューの「スマートな」ロード/アンロードを利用できないことです。

<ScrollView> 
    <LinearLayout> 

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

    </LinearLayout> 
</ScrollView> 


アイデア#2 - これに類似getViewの方法で、ハックArrayAdapterを使用します。

@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

関連する問題