我需要始终显示 ListView 标题,即使 ListView 没有项目。
有可能吗?或者更好地在 ListView 中添加标题作为第一项?
如果列表没有元素并且您没有添加适配器,只需添加以下内容:
mListView.setAdapter(null);
并且标题将出现。
在 onCreate 的活动中,您可以通过添加代码来添加标题:
View headerView = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.header_view, null, false);
getListView().addHeaderView(headerView);
在大多数情况下不需要添加标题,您可以在 xml 布局中添加项目。
如果您可以使用http://viewpagerindicator.com/
并设置getListView().setEmptyView(emptyView);
// 当您的 listView 没有项目时
我的解决方案是手动切换空视图。
/**
* Custom empty view handling because we don't want the
* list to be hidden when the empty view is displayed,
* since the list must always display the header.
*/
private void toggleEmptyView(Adapter adapter)
{
final View emptyView = findViewById(R.id.empty_view);
adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
emptyView.setVisibility(adapter.getCount() == 0 ? View.VISIBLE : View.GONE);
}
});
}
无论您是否ListView
有元素,标题都将始终可见。如果 ListView 中有元素,标题将与它们一起滚动,否则它将始终位于顶部。
关于如何将标题视图添加到 ListView,您可以参考用户提供的其他答案。