我的主要活动最初有4个标签,我使用此代码添加:
mMainPagerAdapter = new MainPagerAdapter(getSupportFragmentManager(), getApplicationContext());
viewPager = findViewById(R.id.viewpager);
viewPager.setAdapter(mMainPagerAdapter);
mTabLayout = findViewById(R.id.tabs);
mTabLayout.setupWithViewPager(viewPager);
现在,用户可以激活首选项中的功能:
PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().putBoolean(FEATURE_ENABLED, true).apply();
用户选择此选项并返回主活动后,必须在TabLayout中添加附加标签。用户无法撤消此操作(新选项卡将永久保留,无法再次删除)。最好的方法是什么?现在,我在主要活动中覆盖onResume
方法,并执行以下操作:
@Override
protected void onResume() {
super.onResume();
int currentNumOfTabs = mMainPagerAdapter.getCount();
boolean featureEnabled = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(SettingsFragment.FEATURE_ENABLED, false);
if (featureEnabled && currentNumOfTabs == 4) {
mMainPagerAdapter.setNumOfTabs(5);
mMainPagerAdapter.notifyDataSetChanged();
}
}
我觉得这不是正确的做法。有人可以帮忙吗?
答案 0 :(得分:0)
我自己找到了答案。我注册了一个偏好更改事件并更新了适配器:
else if(!pid1 && !pid2){ //child #1