带有标题的Android ListView设置空视图将导致标题被隐藏

时间:2015-01-22 07:27:33

标签: android listview

目前我有一个带有标题的listView。

View headerView = getLayoutInflater().inflate(R.layout.headerview, null);
View emptyView = getLayoutInflater().inflate(R.layout.emptyView, null);
mlistView.addHeaderView(headerView);
mListView.setEmptyView(emptyView);

这是我的emptyView

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/empty_layout_holder"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/empty_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="No items"
        android:textSize="24dp" />


</RelativeLayout>

标题Xml

  <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="vertical">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/fullname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>


    </LinearLayout>

注意我将emptyView放在一个单独的XML中,因为我改变了它的颜色。目前我无法继续进行,因为设置空视图只显示白色布局而没有标题,即使是文本&#34;没有项目&#34;。所以我猜它不起作用。我错过了这里的东西吗?

1 个答案:

答案 0 :(得分:0)

必须将视图添加到您的活动的布局中:

final int mp = ViewGroup.LayoutParams.MATCH_PARENT;
addContentView(emptyView, new RelativeLayout.LayoutParams(mp, mp));

ListView仅设置EmptyView的可见性(如果存在)。在您的情况下,可见性已设置,但由于未添加,因此不会显示。