为什么我不能在ListFragment中使用setListShown?或列表从异步任务加载时如何显示进度指示器?

时间:2012-08-10 16:04:19

标签: android android-listview

我有一个ListFragment。 在onCreateView中,我向一个视图提供了一个带有Id的ListView:一个带有Id的List:List和一个带有Id的TextView:空。

我希望片段视图上有一个进度指示器,直到列表加载了来自asyncCall的数据。 为此,看起来我应该在onActivityCreated(或者在AsyncTask onpreExec或onprogUpdate或其他东西上)setListShown(false)。

然后onStart of Fragment我会说setListShown(true)以显示列表并删除进度。

但是当我尝试使用setListShown时,我得到了IllegalStateException(“不能与自定义内容视图一起使用”);

自定义列表视图究竟是什么意思? 它只是通过覆盖onCreateView而成为自定义列表视图吗?即使我在视图中有一个listView,其中包含Id android:List,这是ListFragment所期望的......

1 个答案:

答案 0 :(得分:3)

您可以尝试在每个片段中使用视图切换器。这里的概念是一个布局有两个视图,你可以循环或翻页。

切换台中的一个视图,如果您愿意,第1页将有加载进度,而第2页的另一个视图将具有该列表。默认为第1页或进度加载程序视图。

确定列表已加载并呈现后,切换视图,switcher.showNext()以显示列表。

switcher.showNext()或switcher.showPrevious()会将您带回加载程序。