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;
    }
}

and my main是:

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) {
    }
}

任何人能提供的任何帮助都将非常感激。谢谢!

在Android Studio上,你可以自动创建如下代码:

  • 右键单击项目的文件夹,选择新建->选项卡活动。
  • 选择导航样式。(ActionBarTabs如果我理解你的话)
  • 如果需要,更改其他字段
  • 单击finish

你现在有一个全新的选项卡活动使用:)

如果你想了解它是如何工作的,你可以阅读生成的代码。

如果你需要任何帮助,请告诉我

最新更新