我的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