如何在android中显示片段
我正在使用ViewPager在Activity1上创建3个片段,如何在android中显示片段,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我正在使用ViewPager在Activity1上创建3个片段, 这是我的viewPager适配器: public class ViewPagerAdapter extends FragmentStatePagerAdapter { int mNumOfTabs; public ViewPagerAdapter(FragmentManager fm, int NumOfTabs) { super(fm); this.mNumOfTabs = N
这是我的viewPager适配器:
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public ViewPagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Fragment1 tab1 = new Fragment1();
return tab1;
case 1:
Fragment2 tab2 = new Fragment2();
return tab2;
case 2:
Fragment3 tab3 = new Fragment3();
return tab3;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
这是一项活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
TabLayout tab_layout = (TabLayout) findViewById(R.id.tab_layout);
tab_layout.addTab(tab_layout.newTab().setText("Frag1"));
tab_layout.addTab(tab_layout.newTab().setText("Frag2"));
tab_layout.addTab(tab_layout.newTab().setText("Frag3"));
final ViewPager view_pager = (ViewPager) findViewById(R.id.viewpager);
final ViewPagerAdapter adapter = new ViewPagerAdapter
(getSupportFragmentManager(), tab_layout.getTabCount());
view_pager.setAdapter(adapter);
view_pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tab_layout));
tab_layout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
view_pager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
当Activity1打开时,它显示Fragment1。但我想改为显示Fragment2或Fragment3。我如何才能做到这一点?在
viewpager.setAdapter(适配器)之后添加这一行代码>:
viewPager.setCurrentItem(index);
索引取决于您,您有多少片段<代码>tabLayout.getTabCount()代码>将返回选项卡计数。但指数是从0开始的
如果您有3个Fragment
并且想要显示第三个Fragment
,则必须使用viewPager.setCurrentItem(2)代码>将viewpager的当前位置设置为所需位置,在您的情况下为2或3
new Handler().post(new Runnable() {
@Override
public void run() {
mViewPager.setCurrentItem(desiredPos);
}
});
看更多
@1234abcd没问题,我想你得到了索引!