如何更改TabHost背景颜色

时间:2011-04-26 10:39:36

标签: android

我正在使用Tab Host进行android应用程序。我想更改背景颜色,而不是从Android操作系统提供默认颜色。我谷歌这个问题我得到了一些解决方案,我进行了编码。

 for (i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) { 
        mTabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.LTGRAY); 
        } 
    mTabHost.getTabWidget().getChildAt(mTabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#000000")); 

在此代码中,每当我单击另一个(即下一个选项卡)时,第一个选项卡都会更改颜色Tab,颜色不会改变。如果有人知道这个特殊问题,请指导我。

3 个答案:

答案 0 :(得分:2)

你必须在tabHost中添加一个监听器,某事。喜欢

mtabHost.setOnTabChangedListener(new OnTabChangeListener() {

        @Override
        public void onTabChanged(String tabId) {
            setTabColor(mtabHost);
        }
});

其中setTabColor()包含您的代码。

答案 1 :(得分:1)

TabWidget tw = tabHost.getTabWidget(); tw.setBackgroundDrawable(getResources().getDrawable(R.drawable.xxxxxx));

//你必须覆盖
public void onTabChanged(String tabId) {
Activity activity = getLocalActivityManager().getActivity(tabId);
if (activity != null) {
activity.onWindowFocusChanged(true);
}
}

答案 2 :(得分:1)

由于状态和选择器,这比您想象的要复杂得多。我发现以下网站在自定义标签之前很有用:http://joshclemm.com/blog/?p=136