Android ListView addHeaderView无法使用简单的View

时间:2013-02-07 10:23:53

标签: android android-layout android-listview

我为View充气并将其添加到ListView,以便将其用作ListView中顶部元素的填充。问题是视图不会在ListView中呈现,除非我将View更改为TextView,我不能在这里使用简单的View吗?为什么呢?

这是添加pad的代码:

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view top_pad = inflater.inflate(R.layout.search_pad, null);
list.addHeaderView(top_pad);

pad XML文件 layout.search_pad

<?xml version="1.0" encoding="UTF-8"?>
<View 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="5dp"
    android:background="#333" />

1 个答案:

答案 0 :(得分:1)

可以在标题中添加View类型的Item,问题是如果没有任何信息告诉视图应该至少有多高,并且视图不包含子项,则ListView会将其标题缩小为高度为0。

所以要修复我在XML中添加的实现

android:minHeight="@dimen/minHeader"

其中minHeader是

<dimen name="minHeader">5dp</dimen>

此处再次为addHeaderView(View v)调用:

  

注意:首次引入时,只能在使用setAdapter(ListAdapter)设置适配器之前调用此方法。从KITKAT开始,可以随时调用此方法。如果ListView的适配器没有扩展HeaderViewListAdapter,它将被WrapperListAdapter的支持实例包装。

对不起,这很晚,Happy Coding。