【问题标题】:Android addHeaderView disappears when no items in ListView当ListView中没有项目时Android addHeaderView消失
【发布时间】:2011-02-14 00:57:26
【问题描述】:

我正在使用addHeaderView 将视图项添加到ListView 的顶部。我还有一个TextView 来显示一条消息,说明列表中没有项目。

这是布局:

<ListView android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>          

<TextView
    android:id="@android:id/empty"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/list_empty"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceMedium" />

还有 Java 代码:

final ListView listView = getListView();
final View view = getLayoutInflater().inflate(R.layout.list_item_add,
            listView, false);
listView.addHeaderView(view, null, true);

当 ListView 中有项目时,会显示标题,但如果我删除列表中的所有项目(标题视图除外),那么标题视图就会消失。

无论列表中是否有项目,我都希望标题视图在列表视图中可见。

谢谢,

【问题讨论】:

标签: android listview


【解决方案1】:

从您的布局中删除 @android:id/empty 视图,或覆盖/子类您的适配器以从 isEmpty() 返回 false

【讨论】:

  • 我猜在这种情况下,当列表为空时它不会显示空视图
  • 显而易见,确保在覆盖 isEmpty() 之后实例化适配器并将其设置为 ListView。
  • 我们到底在做什么?我正遭受这个问题的困扰。覆盖 isEmpty 然后设置适配器是什么意思?
【解决方案2】:

根据我的经验(SDK 版本 10):

在适配器中覆盖 isEmpty() 使其工作。

然后,删除@android:id/empty 视图是可选的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    相关资源
    最近更新 更多