Tabcomb在Honeycomb app的操作栏中?

时间:2011-06-25 08:34:36

标签: android android-layout android-3.0-honeycomb android-tabhost

我有一个应用程序(用于Honeycomb),主要活动显示一种仪表板,有三个按钮和一个标题。当用户单击按钮时,他们将被带到可以输入数据并进行计算的屏幕。我希望在第二个('计算器')活动中有两种计算方法,并希望通过在操作栏中设置两个选项卡来实现这一点(仅当您参与此计算器活动时)。

我之前没有使用过tabhost小部件或标签,所以如何在操作栏中更改标签小部件并更改屏幕的其余部分(除了操作栏和系统栏之外的所有内容)标签是否被选中?

如果有人可以指向我专门针对Honeycomb操作栏标签的某些源代码,那就太棒了。

感谢您的帮助,祝您度过愉快的一天。

2 个答案:

答案 0 :(得分:1)

请参阅使用操作栏标签的Honycomb Gallery

答案 1 :(得分:1)

操作栏中的标签是一个非常简洁的功能。为了在SO上完成这个问题,我将提供一个例子;此代码包含在Activity的onCreate

final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// remove the activity title to make space for tabs
actionBar.setDisplayShowTitleEnabled(false);


// instantiate some fragments for the tabs
Fragment fragment1 = new Fragment1();
Fragment fragment2 = new Fragment2();

// add a new tab and set its title text and tab listener
actionBar.addTab(actionBar.newTab().setText(R.string.title_tab1)
                .setTabListener(new MyTabListener(fragment1)));

actionBar.addTab(actionBar.newTab().setText(R.string.title_tab2)
                .setTabListener(new MyTabListener(fragment2)));

您可以将MyTablListener作为活动的内部类,它可能看起来像这样;

class MyTabListener implements ActionBar.TabListener {
    private Fragment fragment;

    public MyTabListener(Fragment fragment) {
        this.fragment = fragment;
    }

    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        ft.replace(R.id.activity_new_formula_fragment_content, fragment, null);
    }

    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
        ft.remove(fragment);
    }

    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
    }
}