ListView 在加载数据之前短暂显示空消息

2023-12-23

我创建了一个ListFragment使用以下自定义布局,添加一个TextView当列表为空时显示消息:

<?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:orientation="vertical" >

  <ListView android:id="@id/android:list"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:drawSelectorOnTop="false"/>

  <TextView android:id="@id/android:empty"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/vsl_empty"
            android:gravity="center"
            android:layout_gravity="center"
            android:textColor="#8C8C8C" />
</LinearLayout>

使用派生自的自定义适配器加载数据CursorAdapter。当数据库中有数据时,列表会非常简短地显示空列表消息,直到加载数据,此时列表将被填充。

如何防止因列表尚未填充而短暂出现空列表消息?

Update

我想强调的是我正在使用ListFragment布局包含ListView与特殊的IDandroid:list, and a TextView与特殊的IDandroid:empty,如所解释的here http://developer.android.com/reference/android/app/ListFragment.html.

Setting android:visibility="invisible"不影响可见性。我怀疑这是因为它被设置为内部可见。


提供的答案是在正确的轨道上。我确实必须设置TextView看不见,但正确的位置是在onCreateLoader:

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
  mListView.getEmptyView().setVisibility(ListView.GONE);

  return new CursorLoader(getActivity(), CONTENT_URI, null, null, null, null);
}

另外,没有必要使空视图再次可见:这是由框架自动完成的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ListView 在加载数据之前短暂显示空消息 的相关文章

随机推荐