我正在使用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,颜色不会改变。如果有人知道这个特殊问题,请指导我。
答案 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