Thursday, June 3, 2010

如何使 tabs widget 向下支援?

要學會在 Android 軟件上使用 tabs, 線上都會有不少範例可供參考. 但可惜大部份都會造成 Android 1.6 以下所有 tab 重疊的現像. 要解決問題, 原來只要使用 LayoutInflater 就可以:
TabHost mTabHost = getTabHost();
mTabHost.setup();
LayoutInflater inflater_tab1 = LayoutInflater.from(this);
inflater_tab1.inflate(R.layout.tab1, mTabHost.getTabContentView());
inflater_tab1.inflate(R.layout.tab2, mTabHost.getTabContentView()); mTabHost.addTab(mTabHost.newTabSpec("tab_1").setIndicator(getText(R.string.live)).setContent(R.id.tab1));
mTabHost.addTab(mTabHost.newTabSpec("tab_2").setIndicator(getText(R.string.chat1)).setContent(R.id.tab2));
注: 如果你的軟件是供 2.1 或以上, 就無須使用 LayoutInflater 都可以正常運作.

如要簡化 main.xml, 方便開發及預覽每個 tab 的 layout, 可以分開每個tab 的 xml layout, 再用 setContent 呼叫相應 xml 內的 id 即可.

No comments: