Fragment与ActivitionBar关联应用案例
2016-01-24 20:12
351 查看
setActionbar();//构造这样一个方法
if(savedInstanceState!=null){
int tab=savedInstanceState.getInt("key");
bar.setSelectedNavigationItem(tab);
}//提取保存的tab选择位置,防止横竖屏幕切换出现错误
}
ActionBar bar;
public void setActionbar(){
bar=getActionBar();
bar.setDisplayShowTitleEnabled(false);
bar.setDisplayShowHomeEnabled(false);//去掉actionbar题目
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置actionbar模式
bar.addTab(bar.newTab().setText("TAB01").setTabListener(new FraTabListener(this,
Fragment1.class, "frg1")));
bar.addTab(bar.newTab().setText("TAB02").setTabListener(new FraTabListener(this,
Fragment2.class, "frg2")));
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("key", bar.getSelectedNavigationIndex());//保存tab选择位置信息
}
static class FraTabListener implements TabListener{//自己写tab监听器
private Class<?> mClass;
private Activity mActivity;
private String tag;
private Fragment mfrg;
public FraTabListener(Activity activity,Class<?> mclass,String tag) {
this.mActivity=activity;
this.mClass=mclass;
this.tag=tag;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(mfrg==null){
mfrg=Fragment.instantiate(mActivity, mClass.getName());
ft.add(R.id.container, mfrg, tag);
}else{
ft.attach(mfrg);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if(mfrg!=null){
ft.detach(mfrg);//清除不被选择的fragment
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}}
if(savedInstanceState!=null){
int tab=savedInstanceState.getInt("key");
bar.setSelectedNavigationItem(tab);
}//提取保存的tab选择位置,防止横竖屏幕切换出现错误
}
ActionBar bar;
public void setActionbar(){
bar=getActionBar();
bar.setDisplayShowTitleEnabled(false);
bar.setDisplayShowHomeEnabled(false);//去掉actionbar题目
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置actionbar模式
bar.addTab(bar.newTab().setText("TAB01").setTabListener(new FraTabListener(this,
Fragment1.class, "frg1")));
bar.addTab(bar.newTab().setText("TAB02").setTabListener(new FraTabListener(this,
Fragment2.class, "frg2")));
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("key", bar.getSelectedNavigationIndex());//保存tab选择位置信息
}
static class FraTabListener implements TabListener{//自己写tab监听器
private Class<?> mClass;
private Activity mActivity;
private String tag;
private Fragment mfrg;
public FraTabListener(Activity activity,Class<?> mclass,String tag) {
this.mActivity=activity;
this.mClass=mclass;
this.tag=tag;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(mfrg==null){
mfrg=Fragment.instantiate(mActivity, mClass.getName());
ft.add(R.id.container, mfrg, tag);
}else{
ft.attach(mfrg);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if(mfrg!=null){
ft.detach(mfrg);//清除不被选择的fragment
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}}
相关文章推荐
- 【NOI2001】炮兵阵地
- Java EE V7.0学习笔记-Oracle Enterprise Pack for Eclipse (OEPE) 12.2.1下载就可以使用
- 801冠号大全及桃花荧光
- 分析分布式服务框架
- TCP_wapper访问控制机制
- java.lang.SecurityException: Permission Denial: reading
- 黑客与画家
- 51nod 1085 01背包模板
- sn9c291 驱动载入成功,mpayer无法播放
- 2016年我的看电影计划
- Mac Xcode 配置OpenCv开发环境
- 【Android开发】成长篇:难忘bug
- Lucene的常用操作详解,crud
- 活动选择问题
- 利用face++的人脸检测实现的眼球跟随效果
- Eval与Bind的区别
- tornado+celery的简单使用
- 51nod 1086 多重背包模板
- Eval与Bind的区别
- [转]GeoServer地图开发解决方案(一):环境搭建篇