Итак, я пытаюсь иметь экран с тремя фрагментами на разных вкладках, и на одном из них они переключаются на другой фрагмент, но я не могу понять, как я мог это сделать. Я посмотрел на другие подобные вопросы, однако, я не могу заставить их работать. Поэтому, если кто-то может помочь мне точно понять, что было бы здорово.Android: Замена фрагментов внутри вкладок
Мой tabsadapter это
public class Tabsadapter extends FragmentStatePagerAdapter {
private int TOTAL_TABS = 3;
public Tabsadapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
return new fragment1();
case 1:
return new fragment2();
case 2:
return new fragment3();
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return TOTAL_TABS;
}
}
и мое главное заключается в следующем:
public class main extends ActionBarActivity implements android.support.v7.app.ActionBar.TabListener {
private ViewPager tabsviewPager;
private ActionBar mActionBar;
private Tabsadapter mTabsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabsviewPager = (ViewPager) findViewById(R.id.tabspager);
mTabsAdapter = new Tabsadapter(getSupportFragmentManager());
tabsviewPager.setAdapter(mTabsAdapter);
getSupportActionBar().setHomeButtonEnabled(false);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab1 = getSupportActionBar().newTab().setText("Month").setTabListener(this);
Tab tab2 = getSupportActionBar().newTab().setText("Week").setTabListener(this);
Tab tab3 = getSupportActionBar().newTab().setText("Day").setTabListener(this);
getSupportActionBar().addTab(tab2);
getSupportActionBar().addTab(tab2);
getSupportActionBar().addTab(tab3);
tabsviewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
getSupportActionBar().setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
}
@Override
public void onTabSelected(Tab selectedtab, FragmentTransaction arg1) {
tabsviewPager.setCurrentItem(selectedtab.getPosition()); //update tab position on tap
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
}
}
Любой кто поможет может обеспечить было бы весьма признателен. Благодаря!
Спасибо! Не знал об этой функции, этот код намного лучше. Но как я могу заменить фрагмент, поэтому пока я нахожусь в приложении и нажимаю кнопку, фрагмент заменит себя другим? – HaHaHAHungry
Я действительно не понимаю, что вы пытаетесь сделать. Вы можете объяснить мне, пожалуйста? – victorleduc
Итак, у меня есть вкладка, содержащая пару вкладок, и одна из вкладок отображает фрагмент, содержащий кнопку, и я хочу, чтобы эта кнопка была нажата для замены текущего фрагмента на другой, и я не уверен, как это сделать замена – HaHaHAHungry