1
基本的に私が持っているのは、各タブにwebviewを含むtablayoutです。設定メニューから、ユーザーはタブを追加または削除できます。これが完了したら、私はpageradapter.notifydatasetchanged()を呼び出す必要があります。しかしこれを行うと、すべてのwebviewが更新を開始します。私の質問は、これを避ける方法はありますか?他のタブに影響を与えずにタブを追加または削除したいだけです。pagerAdapter.notifyDataSetChanged()を処理する方法は?
case "Yahoo":
if (!fragmentList.contains(fragYahoo)) {
if (tabYahoo == null) {
tabYahoo = tabLayout.newTab().setText("Yahoo").setTag("Yahoo");
}
tabLayout.addTab(tabYahoo);
fragYahoo = NewsFragment.newInstance("http://www.Yahoo.com/");
fragmentList.add(fragYahoo);
navigationView.getMenu().findItem(R.id.Yahoo).setVisible(true);
}
break;
case "stackoverflow":
if (!fragmentList.contains(fragstackoverflow)) {
if (tabstackoverflow == null) {
tabstackoverflow = tabLayout.newTab().setText("stackoverflow").setTag("stackoverflow");
}
tabLayout.addTab(tabstackoverflow);
fragstackoverflow = NewsFragment.newInstance("http://www.stackoverflow.com/");
fragmentList.add(fragstackoverflow);
navigationView.getMenu().findItem(R.id.stackoverflow).setVisible(true);
}
pagerAdapter.notifyDataSetChanged();
pageradapter初期
public List<Fragment> fragmentList = new ArrayList<>();
mViewPager = (ViewPager) findViewById(R.id.pager);
pagerAdapter = new TabPagerAdapter(getSupportFragmentManager(), fragmentList);
mViewPager.setAdapter(pagerAdapter);
mViewPager.setOffscreenPageLimit(pagerAdapter.getCount()-1);
私は代わりに、これは私が 'mViewPager.setAdapter(pagerAdapter)、それを使用する方法である、setupwithviewpagerを使用していない;' – choman
私tablayoutの初期のsorceコードをご提示ください。 – nshmura
私は 'setupwithviewpager'が新しい実装だと思っています。今はキャッシュを保存してリロードしようとしていますが、動作させることはできません。私は論理を得ることができません。私はまだすべてのチュートリアルを試しました – choman