ListView与标题

Mat*_*att 11 android listview adapter

是否有插入另一方式View上面ListListView?例如,我想要一个位于顶部的标题栏(TextView)List,并在List滚动时滚动出视图.到目前为止,我可以想到两种方法,但两者都是黑客.


想法#1 - 使用假装为ListView的LinearLayout.但问题是您无法利用适配器提供的"智能"加载/卸载视图.

<ScrollView>
    <LinearLayout>

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

    </LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)


想法#2 - 使用hacky 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;
}
Run Code Online (Sandbox Code Playgroud)

dym*_*meh 37

简单.只需添加标题视图即可ListView

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

listView.addHeaderView(textView);
Run Code Online (Sandbox Code Playgroud)

  • 确保在设置标题之前调用`setAdapter(null);`.或者,仅在设置标题后添加适配器. (5认同)