2 clcurie 11 clcurie_11 于 2013.04.25 15:51 提问

如何改变 TabHost 的背景颜色?

我做了一个使用Tab Host的android应用程序,我想改变Tab Host的背景颜色,而不是使用 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的颜色可以改变,但是当我点击另外一个tab的时候,它的颜色没变。怎么修改呢?

2个回答

LiDaming_and
LiDaming_and   2013.04.25 17:24
已采纳
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);
}
}
CSDN_Ask
CSDN_Ask   2013.04.26 10:37

你需要在 tabHost 上添加一个 Listener

mtabHost.setOnTabChangedListener(new OnTabChangeListener() {

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

在 setTabColor()包含你的代码。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!