android:解決單個tab內部的activity跳轉

來源:互聯網
上載者:User

這裡不是指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的形式,即可實現啦!

找時間嘗試~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.