即使列表不为空,也会始终显示emptyView

时间:2018-05-17 05:33:36

标签: java android xml listview android-cursoradapter

我希望有人可以看一下,让我知道出了什么问题。这是我在activity_main中的emptyView容器

<ListView
        android:id="@+id/display_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <RelativeLayout
        android:id="@+id/empty_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">

        <TextView
            android:id="@+id/empty_shelter_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:fontFamily="sans-serif-medium"
            android:paddingTop="16dp"
            android:text="@string/empty_view_title_text"
            android:textAppearance="?android:textAppearanceMedium" />

        <TextView
            android:id="@+id/empty_subtitle_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/empty_shelter_title"
            android:layout_centerHorizontal="true"
            android:fontFamily="sans-serif"
            android:paddingTop="8dp"
            android:text="@string/empty_view_sub_text"
            android:textAppearance="?android:textAppearanceMedium"
            android:textColor="#A2AAB0" />

    </RelativeLayout>

我在每个片段中都设置了emptyView,即使项目在列表中显示,它仍然显示空视图字段。

//set empty activity
    ListView listView = rootView.findViewById(R.id.display_view);
    View emptyView = rootView.findViewById(R.id.empty_view);
    listView.setEmptyView(emptyView);
    //create a new cursor adapter
    mCursorAdapter = new PlatformCursorAdapter(getActivity(),null);
    listView.setAdapter(mCursorAdapter);

如果你能告诉我我做错了什么,我将非常感激。

2 个答案:

答案 0 :(得分:3)

尝试在xml中隐藏empty_view。

<RelativeLayout
        android:id="@+id/empty_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:layout_centerInParent="true">

答案 1 :(得分:0)

我的朋友你在适配器中发送了一个null。发送清单

mCursorAdapter = new PlatformCursorAdapter(getActivity(),null);

和其他方式用于检查listview是否为null隐藏 display_view view并显示empty_view。