0

为了使tabhost透明,我实现了以下代码..

    for(int i = 0; i < th.getTabWidget().getTabCount(); i++)
    {
    th.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
    }

这在 ICS 中成功地将所有选项卡的背景更改为透明,但是当我在 2.2 和 2.3 上测试它时,前 3 个选项卡背景是透明的,最后 3 个不是(我总共有 6 个选项卡)(顺便说一下,第一个 3 个选项卡是该活动开始时出现的那些)

是什么原因造成的,我该如何解决...请帮助..

应用您的建议后,这就是我包含在代码中的内容,

        th.setOnTabChangedListener(new OnTabChangeListener(){
        @Override
        public void onTabChanged(String tabId) {
            manageTabBackgrounds();
        }

        private void manageTabBackgrounds() {
            // TODO Auto-generated method stub
            for(int i = 0; i < th.getTabWidget().getTabCount(); i++)
            {
            th.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
            }
        }           
    });

然而,这似乎对标签没有影响......请指导..

4

3 回答 3

1

确保你在TabChanged上做...

将您拥有的内容粘贴到函数中(例如,“manageTabBackgrounds”,然后:

yourTabHostInstance.setOnTabChangedListener(new OnTabChangeListener(){
    @Override
    public void onTabChanged(String tabId) {
        manageTabBackgrounds();
    }           
});
于 2012-05-19T08:14:57.313 回答
1

这终于对我有用了..

  th.setOnTabChangedListener(new OnTabChangeListener(){
        @Override
        public void onTabChanged(String tabId) {
            // TODO Auto-generated method stub
             for(int i=0;i<th.getTabWidget().getChildCount();i++)
                {
                   th.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT); //unselected
                }
                th.getTabWidget().getChildAt(th.getCurrentTab()).setBackgroundColor(Color.TRANSPARENT); // selected
        }
        });
于 2012-05-19T14:19:58.103 回答
0

你试过这个吗?

<TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/transparent">
    </TabWidget>
于 2012-05-19T13:42:39.090 回答