View
のList
の上に別のListView
を挿入する方法はありますか?たとえば、List
の上に配置され、リストがスクロールするとビューの外にスクロールするタイトルバー(TextView)が必要です。これまでのところ、これを行うには2つの方法が考えられますが、どちらもハックです。
アイデア#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;
}
シンプル。 ListView
にヘッダービューを追加するだけです
TextView textView = new TextView(context);
textView.setText("Hello. I'm a header view");
listView.addHeaderView(textView);