我的“TabLayout
活动”中有一个,它在创建时会显示一个片段,但是我需要能够在完成一项操作后向其中添加一个新片段(或在创建活动时创建两个片段,但仅显示第一个片段,然后显示第二个)。
我试过将片段添加到viewPagerAdapter中,然后调用notifyDataSetChanged()
方法,将其添加为frament,但是它的标题未显示在tabLayout中,如果我尝试滑动至该片段,则会得到一个IndexOutOfBoundsException: Invalid index 1, size is 1
有没有人给我一些建议?
我的活动,在其中添加了第一个fragmen:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_one);
// Crete a new fragment
FragmentOne fragmentOne = new FragmentoOne();
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
viewPager = (ViewPager) findViewById(R.id.viewPager);
// Creates the viewPagerAdapter
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
// Adds the fragment to ViewPagerAdapter
viewPagerAdapter.addFragment(fragmentoOne, "First"); // this line can cause crashes
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
这是我尝试添加新片段的位置:
public void onAddFragment2() {
viewPagerAdapter.addFragment(new FragmentoTwo(), "Second"); // new FragmentoTwo() should be in FragmentPagerAdapter.getItem()
viewPagerAdapter.notifyDataSetChanged();
}
使用setAdapter添加适配器后再次设置适配器
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句