我有一个AsyncTask,可以获取一些东西并根据收到的数据创建一些片段。如果没有返回数据,我会这样做:
if (data.size() == 0) {
List<Fragment> fragments = getChildFragmentManager().getFragments();
if (fragments != null) {
FragmentTransaction txn = getChildFragmentManager().beginTransaction();
for (Fragment fragment : fragments) txn.remove(fragment);
txn.commit();
}
}
这段代码导致&#34;尝试写入字段&#39; int android.support.v4.app.Fragment.mNextAnim&#39;在null对象引用&#34;。知道为什么吗?
我想,也许在构建事务期间,一些旧事务异步挂起,所以我添加了
getChildFragmentManager().executePendingTransactions()
在构建交易之前调用。仍然存在错误。
答案 0 :(得分:1)
通常,当您尝试从事务中删除空片段引用时会发生此错误。试试吧。
if (data.size() == 0) {
List<Fragment> fragments = getChildFragmentManager().getFragments();
if (fragments != null) {
FragmentTransaction txn = getChildFragmentManager().beginTransaction();
for (Fragment fragment : fragments) {
if (fragment != null){
txn.remove(fragment);
}
}
txn.commit();
}
}