我想使用 Material Design Support库实现向导。
我正在使用ViewPager
和Tablayout
但我在动态添加新标签时遇到问题。
首先,我使用onCreate
方法设置我的小部件:
viewPager = (ViewPager) findViewById(R.id.tab_viewpager);
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new DummyFragment(), "1");
adapter.addFrag(new DummyFragment(), "2");
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
然后我想在点击列表中的元素时添加另一张卡片:
adapter.addFrag(new DummyFragment(), "3");
adapter.notifyDataSetChanged();
tabLayout.setTabsFromPagerAdapter(adapter);
问题是:添加后,所选卡片首先重置。
如何防止这种行为?
答案 0 :(得分:0)
刚遇到同样的问题,幸运的是找到了一个解决方案(不是一个很好的解决方案,但它确实有效):
当您需要更新标签时:
pageradapter.notifyDataSetChanged();
for (int i = 0; i < viewpager.getCount(); i++) {
sectionsTabLayout.getTabAt(i).setText(sectionsViewPagerAdapter.getPageTitle(i));
}
答案 1 :(得分:0)
这是对@Kalpit代码的略微修改。 你必须动态地将这个新选项卡添加到我们的布局中,并通过调用tablayout调用相同的方法来分配标题,当你使用setupWithViewPager方法时,我会使用这个方法来调用尚未创建的标签。但你可能会尝试为他们分配一些头衔。
select