我创建了一个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(使用前将#替换为@)