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