這裡不是指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(
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的形式,即可實現啦!
找時間嘗試~