4

我有一个添加页脚的 ListView。我可以在列表视图上进行什么调用以确定当前是否将给定的页脚添加到列表视图中?

  listView.findViewById(errorFooterid) ?

好像没有方法

 view.containsView(viewReference)

检查现有视图是否包含在另一个视图中似乎是一项基本操作,但我不知道是否有可靠的方法在 android.xml 中进行检查。

为什么 SDK 不支持一种清晰而简单的方法来检查这一点?即使是 findByView(R.id.viewId) 和 null 检查也不是很优雅的布尔检查方式。

4

3 回答 3

18

如果你只有一个页脚并且想知道它是否被添加,你会尝试使用

public int getFooterViewsCount ()
Since: API Level 1

Returns the number of footer views in the list. Footer views are special views at the bottom of the list that should not be recycled during a layout.
Returns

    The number of footer views, 0 in the default implementation. 

所以如果它返回 0,你listview就没有页脚

yourListView.getFooterViewsCount();
于 2012-09-28T01:30:37.040 回答
8

您可以使用以下代码找出页脚视图的数量

listView.getFooterViewsCount();

如果它返回 0,则不存在页脚视图。

于 2014-01-15T08:26:17.900 回答
0

如果这是在活动类中,则只需使用findViewById(int id)。如果该方法返回 null,那么您可以假设尚未添加页脚。

如果这是一个片段类,那么您可以将在 onCreateView() 方法中返回的视图存储为片段类的数据成员。然后它以相同的方式工作,除了您将在您保存的视图上调用 findViewById() 。

LinearLayout footer = (LinearLayout) findViewById(footerId);
if (footer == null)
{
    //add the footer
}
else
{
    //Update the footer
}
于 2012-09-28T00:10:28.803 回答