TabHost和Android 4.0 ICS

时间:2012-03-23 10:13:13

标签: android tabs android-fragments android-tabhost

我已经搜索了很长时间了...我正在编写一个应该兼容Android 2.2和Android 4.0的应用程序。 由于在Android 4.0 Tabs被弃用,我想知道什么是正确的方法呢?如果我仍然在我的测试中使用Tabs它们看起来相当不错(所有大小相同,没有图标...)但是如果我然后在2.2上运行它们都看起来压在一起(只是每个标签的标题大小,也许和我一起使用Horizo​​ntalScrollView?) 什么是正确的决定? 只需使用Android 2.2和4.0的标签?如果是,我怎样才能将2.2上的选项卡设置为相同的大小? 使用4.0上的片段和2.2上的选项卡?如果是,我将如何实现这一点? 如果我应该使用Tabs我应该只使用4个标签(我有2到10个动态)并添加一个额外的“更多”标签?如果是,我该怎么做?

我希望这个问题是可以理解的。如果没有随时可以要求更多信息。

2 个答案:

答案 0 :(得分:7)

你可以查看ActionBarSherlock - 它为Android 2.1+提供了很好的新ICS标签,并且有完美的样本。

答案 1 :(得分:0)

尝试这一个代码

public class WebMenu extends TabActivity {
    //Intent intent;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tebmenu);

        Resources res = getResources();
        TabHost tabHost = getTabHost();
        TabHost.TabSpec spec;

        Intent intent = new Intent().setClass(this, Add_webpage.class);
        spec = tabHost
                .newTabSpec("Add new Web Page")
                .setIndicator("New",
                        res.getDrawable(R.drawable.folder_web_blue))
                .setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, WebHistory.class);
        spec = tabHost.newTabSpec("Web History")
                .setIndicator("History", res.getDrawable(R.drawable.webhistory))
                .setContent(intent);
        tabHost.addTab(spec);

        intent = new Intent().setClass(this, WebList.class);
        spec = tabHost.newTabSpec("Web List")
                .setIndicator("List", res.getDrawable(R.drawable.weblist))
                .setContent(intent);
        tabHost.addTab(spec);

        tabHost.setCurrentTab(2);
    }
}