我之前完成了很多片段,但它们都在扩展一些现有片段,现在这是一个相当/肮脏的测试,我只是设置列表片段及其适配器,但我想摆脱正在发生的这种烦恼并且会想知道什么是最好的方法。
这是我的 FragmentActivity 的 onCreate:
@Override
protected void onCreate(Bundle savedInstances) {
super.onCreate(savedInstances);
mListFrag = new ListFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, mListFrag).commit();
getSupportLoaderManager().initLoader(13, null, this).forceLoad();
}
简单的东西,实例化一个新的 ListFragment,将它添加为我的活动的主框架并启动我的光标加载器。
在游标加载器上,完成后:
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
if (mAdapter == null) {
mAdapter = getCallLogCursorAdapter(cursor);
mListFrag.setListAdapter(mAdapter);
} else {
Cursor oldCursor = mAdapter.swapCursor(cursor);
if (oldCursor != null)
oldCursor.close();
}
}
再次,简单的东西,如有必要,创建一个适配器,如果不是我只是交换光标。
所有这些在第一次运行时都可以正常工作,但是当我旋转设备时,我得到了旋转列表以及视图中间的进度条。似乎不知何故有两个碎片一个在另一个之上。我试着mListFrag.setRetainInstance(true);
让它不显示进度条,但仍然有两个片段一个在另一个之上,一个接收滚动列表的触摸,另一个保持静态。
我没有覆盖任何其他活动 onSomething() 回调。
我不会费心做太多复杂的方法,因为我正在测试应用程序的数据端,这只是为了快速查看数据库/加载器/内容提供程序是否都工作正常。UI甚至还没有。
有任何想法吗??
编辑:
我看到了一个不同的问题,使用替换而不是在片段上添加,它有点工作但不是真的。它解决了片段本身内部的所有问题,但是当我单击返回并转到上一个活动时,你猜?不确定的进度条位于与这些列表片段无关的活动中间。
想法?也许我应该将这个片段粘贴到布局 xml 中,但因为它是测试,所以我避免为它们创建资源。