使用ViewPager进行Tab标签对应的Fragment切换
来源:互联网 发布:json解析哪些框架 编辑:程序博客网 时间:2024/06/06 02:24
1.在布局文件中使用自定义控件
<android.support.v4.view.ViewPager
....................
>
2.让类继承自FragmentActivity
public class CollectionDemoActivity extends FragmentActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection_demo);
ViewPager vp=(ViewPager) findViewById(R.id.vp);
vp.setAdapter(new MainAdapter(getSupportFragmentManager()));
}
//使用adapter来进行fragment页面的切换
public class MainAdapter extends FragmentStatePagerAdapter{
public MainAdapter( FragmentManager fm) {
super(fm);
}
//根据条目返回fragment
public Fragment getItem(int position) {
if(position==0){
return new HomeFragment();
}
else{
return new AppFragment();
}
}
//条目数
public int getCount() {
return 4;
}
}
}
3.写一个HomeFagment类继承自Fragment,reture 一个 view
4.在ActionBar中添加标签
public void onCreate(Bundle savedInstanceState) {
final ActionBar actionBar = getActionBar();
//在ActionBar中显示Tab标签
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//设置Tab监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
// 添加3个tabs,以及他们的Text和监听事件
for (int i = 0; i < 3; i++) {
actionBar.addTab(
actionBar.newTab()
.setText("Tab " + (i + 1))
.setTabListener(tabListener));
}
}
5.//当Tab改变时同时ViewPager随着改变---当ViewPager改变时同时Tab随着改变
public void onCreate(Bundle savedInstanceState) {
// tab改变的监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
...
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//tab的位置对应viewPager的位置
mViewPager.setCurrentItem(tab.getPosition());
}
...
};
//viewpager的监听事件
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
.....
public void onPageSelected(int position) {
//viewpager的位置对应tab的位置
getActionBar().setSelectedNavigationItem(position);
}
.....
});
}
<android.support.v4.view.ViewPager
....................
>
2.让类继承自FragmentActivity
public class CollectionDemoActivity extends FragmentActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection_demo);
ViewPager vp=(ViewPager) findViewById(R.id.vp);
vp.setAdapter(new MainAdapter(getSupportFragmentManager()));
}
//使用adapter来进行fragment页面的切换
public class MainAdapter extends FragmentStatePagerAdapter{
public MainAdapter( FragmentManager fm) {
super(fm);
}
//根据条目返回fragment
public Fragment getItem(int position) {
if(position==0){
return new HomeFragment();
}
else{
return new AppFragment();
}
}
//条目数
public int getCount() {
return 4;
}
}
}
3.写一个HomeFagment类继承自Fragment,reture 一个 view
4.在ActionBar中添加标签
public void onCreate(Bundle savedInstanceState) {
final ActionBar actionBar = getActionBar();
//在ActionBar中显示Tab标签
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//设置Tab监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
// 添加3个tabs,以及他们的Text和监听事件
for (int i = 0; i < 3; i++) {
actionBar.addTab(
actionBar.newTab()
.setText("Tab " + (i + 1))
.setTabListener(tabListener));
}
}
5.//当Tab改变时同时ViewPager随着改变---当ViewPager改变时同时Tab随着改变
public void onCreate(Bundle savedInstanceState) {
// tab改变的监听事件
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
...
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//tab的位置对应viewPager的位置
mViewPager.setCurrentItem(tab.getPosition());
}
...
};
//viewpager的监听事件
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
.....
public void onPageSelected(int position) {
//viewpager的位置对应tab的位置
getActionBar().setSelectedNavigationItem(position);
}
.....
});
}
0 0
- 使用ViewPager进行Tab标签对应的Fragment切换
- ViewPager+Fragment支持导航滑动以及点击切换,触发替换某个tab对应的fragment
- Android fragment+viewpager 切换Tab
- 使用Fragment+ViewPager,仿微信实现多页Tab切换
- 使用ViewPager和Fragment同时实现点击底部Tab切换和手势滑动切换Fragment
- Fragment 多tab切换,顶部tab,顶部tab+viewpager
- 实现滚动tab切换fragment + viewpager
- TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签
- 标签Tab切换 PagerSlidingTabStrip的使用
- Tab菜单栏:FragmentTabHost&ViewPager&Fragment的结合使用
- ViewPager fragment android tab选项卡的使用
- Tab 滑动标签,综合ViewPager+Fragment+自定义Tab+ActionBar内容
- Android 使用ViewPager和RadioGroup配合Fragment实现标签页,可点击按钮切换、滑动切换。
- Fragment实现的Tab标签
- Viewpager和fragment和自定义的底部Tab实现切换效果
- 关于ViewPager+fragment的使用,viewpager切换时fragment状态保存的问题。
- fragment+ViewPager的使用(页面的滑动切换)
- 通过Fragment + Viewpager+Gridview实现Android Tab切换菜单
- GCD详解及实现
- PHP缓存技术的使用说明
- Swift UIView 的多种添加方法和打标签和移除(方法的详解)、父子视图的关系
- homerHEVC代码阅读(6)——基础结构之hvenc_enc_t
- java线程通信,解决线程之间的交互问题
- 使用ViewPager进行Tab标签对应的Fragment切换
- 编写一个计算前100位斐波那契数的函数。
- 简述strcpy、sprintf与memcpy的区别
- UML图之构件图和部署图
- mini2440_x35 使用minicom进行连接,传送文件
- 哈夫曼编码
- hdoj5586Sum
- [JavaWeb]Maven安装配置
- n&(n-1)的妙用