android:解决单个tab内部的activity跳转


作者:老Zhan 
出处:http://www.cnblogs.com/mybkn/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

这里不是指tab的切换问题,而是单个tab中的内部跳转

比如有一个tabWidget,比如上面有4个a,b,c,d的Activity,然后a上面有一个按钮,对要使其实现跳转到ActivityX,若代码如下的话:
Intent intent = new Intent(aActivity.this,xxActivity.class);

startActivity(intent);

finish();

那么执行后,就只是进入了ActivityX,但下面的tabWidget也消失了

我们要的效果是切换到ActivityX,而又保持有下面的tabWidget,这类似于iphone中的UItarbar里的导航功能。

 

网上求救这效果的很多,但解决方法也比较凌乱。

 

解决方案一:Activity + TabHost + ActivityGroup

但是ActivityGroup 已经被Google弃用了,其官方建议使用Fragment代替,所以这种方法我也没有尝试。

ActivityGroup 的具体可以参考

Android TabHost中切換Activity 

 

方案二:Fragment + TabHost + FragmentActivity

fragment 是3.0之后才有的特性,不过在此之前的SDK可以外加扩展包(android-support-v4)实现其功能。

fragement的使用 可以参考http://marshal.easymorse.com/?s=fragment

 

mHost.addTab(mHost.newTabSpec("Tab1").setIndicator("Tab1").setContent(newIntent(MainTabActivity.this, FragmentActivity1.class)));

这样就使tab为一个FragemntActivity,在FragemntActivity中加入Fragment即可进行管理

实现tab的可参考

Android Tabhost with FragmentActivity

 

三:猜想:FragmentActivity

之前使用Fragment实现了一个Master-Details的界面,类似于iphone中的UISplitView,其原理是通过FragmentActivity的界面分成左右两片,然后分别对左右添加管理Fragment,即可实现。其右边也可实现activity的跳转功能。由此想到,如果把FragmentActivity的视图分成上下两片,下面的做成tab的形式,即可实现啦!

找时间尝试~

   
 
posted @ 2013-03-25 19:43  暂时菜鸟  Views(180)  Comments(0Edit  收藏  举报