0

如何为选项卡添加自定义布局?例如,我想在标签中添加图标和标题。以及自定义活动/非活动颜色。代码:

    mTabHost = (TabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup();
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager);
    TabSpec tab1spec = mTabHost.newTabSpec("tab1").setIndicator("Tab 1");
    TabSpec tab2spec = mTabHost.newTabSpec("tab2").setIndicator("Tab 2");
    mTabsAdapter.addTab(tab1spec, ConverterFragment.class, savedInstanceState);
    mTabsAdapter.addTab(tab2spec, RatesFragment.class, savedInstanceState);
    if (savedInstanceState != null) {
        mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
    }
4

1 回答 1

0
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost();  // The activity TabHost
TabHost.TabSpec spec;  // Resusable TabSpec for each tab
Intent intent = new Intent().setClass(this, YourClass.class);
spec = tabHost.newTabSpec("home").setIndicator("Home",
                      res.getDrawable(R.drawable.tab_options_home))
                  .setContent(intent);
tabHost.addTab(spec);

使用前面的代码,您应该能够创建选项卡、关联意图以启动活动并为选项卡设置图标(第 5 行,“主页”将是选项卡的标题)。该图标将根据选项卡是否处于活动状态而改变,但为此您需要定义一个文件“tab_options_home.xml”(或您想要的任何名称,但请记住在代码中更改它)并将其保存到drawable文件夹中. 该文件应如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Icon used when selected -->
<item android:drawable="@drawable/hover_icon"
      android:state_selected="true" />
<!-- Icon used when not selected -->
<item android:drawable="@drawable/regular_icon" />

state_selected="true"使用此 xml,您可以定义在选项卡处于活动状态 ( ) 或非活动状态时应使用哪个图标。我知道为时已晚,但希望它可以帮助任何需要它 的人
PS:记得延长TabActivity

于 2013-06-25T23:34:13.897 回答