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 的具体可以参考
方案二: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(
new
Intent(MainTabActivity.
this
, FragmentActivity1.
class
)));
这样就使tab为一个FragemntActivity,在FragemntActivity中加入Fragment即可进行管理
实现tab的可参考
Android Tabhost with FragmentActivity
三:猜想:FragmentActivity
之前使用Fragment实现了一个Master-Details的界面,类似于iphone中的UISplitView,其原理是通过FragmentActivity的界面分成左右两片,然后分别对左右添加管理Fragment,即可实现。其右边也可实现activity的跳转功能。由此想到,如果把FragmentActivity的视图分成上下两片,下面的做成tab的形式,即可实现啦!
找时间尝试~