android - 带标题的 ListView

标签 android listview adapter

有没有办法在 ListView 中的 List 上方插入另一个 View?例如,我想要一个位于 List 顶部的标题栏 (TextView),并在 List 滚动时滚出 View 。到目前为止,我可以想到两种方法,但都是 hack。


想法 #1 - 使用伪装成 ListView 的 LinearLayout。但问题是您无法利用适配器提供的“智能”加载/卸载 View 。

<ScrollView>
    <LinearLayout>

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

    </LinearLayout>
</ScrollView>


想法 #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;
}

最佳答案

简单。只需将标题 View 添加到您的 ListView

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

listView.addHeaderView(textView);

关于android - 带标题的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18368010/

相关文章:

java - 保持事件触发点击事件

push-notification - Worklight 推送通知和 SecurityTest

ios - objective-c 中适配器模式的正确实现

android - 让 ADT Code Assist 像 Xcode 自动完成一样工作

android - 如何在Android中自动淡出 ListView 项一项一项?

java - HttpDelete 参数与 setEntity 在 android 上?

listview - 将复选框与 jquery mobile listview 结合起来

android - 在其 ListView 适配器中调用 fragment

android - OSM Magsforge(离线) map 中点和路径之间的最短距离

java - Android Studio 中的 R.id 是什么?