【发布时间】:2012-07-30 20:34:19
【问题描述】:
我想保留这些方法:
setListShown(true);
setListShownNoAnimation(true);
但如果我使用
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
用自定义样式的布局膨胀Fragment,不能使用之前的方法,并显示此异常:
07-30 20:17:46.937: E/AndroidRuntime(1374): Caused by: java.lang.IllegalStateException: Can't be used with a custom content view
07-30 20:17:46.937: E/AndroidRuntime(1374): at android.support.v4.app.ListFragment.setListShown(ListFragment.java:282)
07-30 20:17:46.937: E/AndroidRuntime(1374): at android.support.v4.app.ListFragment.setListShown(ListFragment.java:258)
那么,有什么可能的解决方案呢?
编辑:
Fragment 使用加载器从数据库中填充其ListView。所以这就是我想保留这些方法的原因,这里需要它们:
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mAdapter.swapCursor(data);
if (isResumed()) {
setListShown(true);
} else {
setListShownNoAnimation(true);
}
}
最简单的解决方案是根据ListFragment 源编写我自己的代码,并将进度小部件添加到布局中以显示相同的效果。到目前为止,我将按照我被告知的那样删除这些行。如果我做修改,我会在这里粘贴。
【问题讨论】:
-
它只是一个带有列表视图的线性布局,将样式属性传递给它们。
标签: android listview android-listfragment