我的Activity中有一个TabLayout
,它在创建时显示一个片段,但是我需要能够在完成一个操作后添加一个新片段(或者在活动已创建,但只显示第一个,然后显示第二个)。在运行时向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");
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
这里是我尝试添加新的片段:
public void onAddFragment2() {
viewPagerAdapter.addFragment(new FragmentoTwo(), "Second");
viewPagerAdapter.notifyDataSetChanged();
}
你有没有使用setAdapter设置适配器? –
Dude ...我必须承认我没有,我在想它会再次重新创建第一个片段,丢失了一些'EditText'中填充的数据,现在就试用它,像魅力一样工作......谢谢! :) – Rafael