Android:替换标签中的碎片
所以我试图在一个屏幕上,在不同的选项卡上显示三个片段,在其中一个选项卡上,让它们切换为另一个片段,但我不知道如何才能做到这一点。我已经研究过其他类似的问题,但是,我似乎无法让它们发挥作用。所以如果有人能帮我弄清楚,那就太好了 我的禁忌是这个Android:替换标签中的碎片,android,android-fragments,Android,Android Fragments,所以我试图在一个屏幕上,在不同的选项卡上显示三个片段,在其中一个选项卡上,让它们切换为另一个片段,但我不知道如何才能做到这一点。我已经研究过其他类似的问题,但是,我似乎无法让它们发挥作用。所以如果有人能帮我弄清楚,那就太好了 我的禁忌是这个 public class Tabsadapter extends FragmentStatePagerAdapter { private int TOTAL_TABS = 3; public Tabsadapter(FragmentMan
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) {
}
}
任何人能提供的任何帮助都将不胜感激。谢谢 在Android Studio上,您可以为此自动创建代码:
- 右键单击项目的文件夹,选择新建->选项卡式活动
- 选择导航样式。(如果我能很好地理解你)
- 如果需要,请更改其他字段
- 单击“完成”
如果需要帮助,请问我。谢谢!我不知道这个特性,这段代码好多了。但是我怎么能替换一个片段呢,所以当我在应用程序中,点击一个按钮时,片段会用另一个替换自己?我真的不明白你想做什么。你能解释一下吗?我有一个包含两个选项卡的选项卡式活动,其中一个选项卡显示一个包含按钮的片段,我想当按下该按钮时,当前片段将被替换为另一个片段,我不确定如何执行replacingIt是可能的,但并不容易。我不鼓励你这么做,因为它并没有真正遵循安卓的能量学准则。此外,即使您成功地做到了这一点,如果用户切换选项卡并在第一个选项卡中返回,片段将自动重新启动,并且用户将不再处于单击按钮时启动的片段中。他需要再点击一次。这是一个糟糕的应用程序设计。当用户点击按钮时,你就不能打开一个新的活动吗?这就是我正在做的,我只是觉得这样做会让应用程序看起来更干净,但是你说的有道理,我想我会坚持创建一个新的活动。谢谢