【问题标题】:How to show header of ListView when its emptyListView为空时如何显示标题
【发布时间】:2013-08-08 13:20:35
【问题描述】:

我正在开发以下屏幕

相邻的四个框是按钮。单击按钮时,我正在更改列表视图的适配器。

由于列表视图上方的内容占用了大量空间,我将整个内容作为标题并通过代码添加。

   myPollsList = (ListView) findViewById(R.id.listArea);
myPollsList.addHeaderView(getLayoutInflater().inflate(R.layout.profile_listview_header, null));

现在我想在列表为空时显示一些视图。但如果我这样做,那么标题也会消失。

我在 Activity 而不是 ListActivity 中使用它。即使列表为空,也可以显示标题的任何建议或解决方法?

编辑:请参阅我之前的问题ListView not getting space to show content on smaller screens。这是有人建议我通过将其作为标题来解决问题的地方

【问题讨论】:

    标签: android android-layout android-listview android-ui


    【解决方案1】:

    我为这个问题找到了一个简单的解决方案。如果列表中没有元素并且您没有添加适配器,只需添加以下内容:

    mListView.setAdapter(null);
    

    然后标题就会出现。这比在列表中添加空/假项目更容易。

    【讨论】:

    • 在 addHeaderView() 方法之后添加这些行后,感谢它为我所做的工作
    【解决方案2】:

    所以这就是我解决它的方法。我有一个连接到列表视图的自定义适配器。当它发现要显示的项目为零时。它会将一个假的空视图作为一个项目添加到列表中。

    【讨论】:

    • Aghhh...我们必须做的所有这些黑客操作才能使基本功能正常工作!它让我发疯!
    【解决方案3】:

    也许你会喜欢这个Android addHeaderView disappears when no items in ListView

    覆盖/子类您的适配器以从 isEmpty() 返回 false

    【讨论】:

      【解决方案4】:

      不要将按钮的顶部布局用作列表视图的标题。

      所以要在不使用列表标题的情况下调整 UI,请使用权重。

      给父线性布局权重总和为 4 和 1,顶部布局为 1,列表视图为 2。

      【讨论】:

      • 这会降低顶部布局的高度吗?
      • 这不是我想要的。我希望所有设备的高度都相同。这就是为什么我选择了标题路线,以便标题的高度保持固定。列表视图的其余部分可以向下滚动
      • 作为比例,您的所有 3 个视图将具有相同的大小,例如 1:1:2,而且它在任何设备上都可以很好地工作,只需尝试一下。欢呼
      • 不。这不是我想要的效果。感谢您的帮助:)
      猜你喜欢
      • 1970-01-01
      • 2015-07-09
      • 2011-04-15
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多