Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改TabHost背景颜色_Android - Fatal编程技术网

Android 如何更改TabHost背景颜色

Android 如何更改TabHost背景颜色,android,Android,我正在用Tab主机做android应用程序。我想改变背景颜色,而不是android操作系统的默认颜色。我用谷歌搜索了这个问题,找到了一些解决方案,并编写了代码 for (i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) { mTabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.LTGRAY); } mTabH

我正在用Tab主机做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")); 
(i=0;i mTabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.LTGRAY); } mTabHost.getTabWidget().getChildAt(mTabHost.getCurrentTab()).setBackgroundColor(Color.parseColor(#000000));
在这段代码中,每当我单击另一个(即下一个选项卡)选项卡时,第一个选项卡就会改变颜色,而颜色不会改变。如果有人知道这个问题,请告诉我

你必须在tabHost中添加一个侦听器,比如

mtabHost.setOnTabChangedListener(new OnTabChangeListener() {

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

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

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

//您必须覆盖

已更改的公共无效项(字符串tabId){
活动活动=getLocalActivityManager().getActivity(tabId);
如果(活动!=null){
activity.onWindowFocusChanged(true);
}
}

由于状态和选择器的原因,这比您想象的要复杂得多。我发现以下网站在以前自定义选项卡时非常有用: