【发布时间】:2019-08-06 06:34:14
【问题描述】:
我已经尝试了这么多给定的例子,但对我没有任何帮助。当我尝试从 viewPager 动态删除页面时,我遇到了异常:
无法为未附加到 FragmentManager 的 Fragment 设置MaxLifecycle
我的 PagerAdapter 如下:
public class MyPagerAdapter extends FragmentStatePagerAdapter {
private final Context mContext;
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
long baseId = 0;
public MyPagerAdapter(Context context, FragmentManager fm) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
mContext = context;
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title, int position) {
mFragmentList.add(position, fragment);
mFragmentTitleList.add(position, title);
}
public void removeFragment(int position) {
mFragmentList.remove(position);
mFragmentTitleList.remove(position);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
要删除页面,我正在调用类似的方法
myPagerAdapter.removeFragment(viewPager.getCurrentItem());
我也尝试过以下给定的方法,但仍然出现异常
@Override
public int getItemPosition (Object object) {
int index = mFragmentList.indexOf (object);
if (index == -1)
return POSITION_NONE;
else
return index;
}
【问题讨论】:
-
您可能应该只是 file a bug against Fragments - 这与您的代码没有任何关系。
标签: android android-fragments android-viewpager fragmentmanager