-4

我正在尝试处理以下场景但没有运气:(我想构建以下列表视图:

"--------------------"

  header


< empty space >

< empty space >

< empty space >

< empty space >





  item1

  footer

"-------------------"

在页眉到页脚之间我不想有任何东西,只是黑色的 nadda。可能吗?谢谢

4

1 回答 1

1

首先,您必须了解它是如何工作的。Header and Footer(以下简称HF)——一个View,可以添加到上面和下面的列表中。用于确保适当的视图列表项不再满足适配器和程序员。他必须创建一个 View 并将其提交到方法中的列表或 addHeader addFooter。

这是两种实现方法。考虑 Header 的示例。

  1. addHeaderView (View v, Object data, boolean isSelectable)

v - 视图,显示为列表项 data - 与项列表关联的对象是Selectable - 是否可以单击该项或释放他

  1. addHeaderView(视图 v)

第一个方法的挑战在于以下参数: addHeaderView (v, null, true);

使用 HF 时,适配器有一个警告。分配列表适配器(方法 setAdapter)时,已添加到 Header 或 Footer 的检查列表。

如果不是,则该列表处于活动状态,然后它禁止适配器本身进一步增强 HF。它是在方法和 addHeader addFooter 的帮助下编写的 - «在调用 setAdapter 之前调用它»。也就是说,您必须在分配适配器列表之前添加 HF。

如果是这样,则列表使用构造函数包装生成的适配器 HeaderViewListAdapter:HeaderViewListAdapter (ArrayList headerViewInfos, ArrayList footerViewInfos, ListAdapter adapter),其中 headerViewInfos 和 footerViewInfos - 它先前添加到 HF 列表中,而适配器 - 我们给的适配器名单。而现在工作列表将被适配器使用 HeaderViewListAdapter,即用作 HF,并且来自适配器的数据被分配到列表中。

所以如果你运行下面的示例代码

  lvMain.addHeaderView(header1);
    lvMain.addHeaderView(header2, "some text for header 2", false);
    lvMain.addFooterView(footer1);
    lvMain.addFooterView(footer2, "some text for footer 2", false);
    lvMain.setAdapter(adapter);

您将获得一个带有 2headers、2footers 的列表视图,并且您是页眉和页脚下方的适配器。

对于您的问题: 是的,这在几种情况下是可能的:

  • 你是适配器膨胀的空白视图
  • 您在适配器中的数据是“”或类似的东西
  • 您的膨胀视图在黑色背景上有黑色文本,但在这种情况下,您可能会在点击时观看此内容。

为未来 - 发布您的代码并为文本框使用标签,以便我们可以完全识别问题

于 2013-07-07T17:24:45.627 回答