我来自Objective-C,是一个Android新手。我正在使用以下方法,旨在更改索引0的选项卡颜色。但我想在选中时更改默认的灰色选项卡。谢谢。
mTabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.CYAN);
myTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
int tab = myTabHost.getCurrentTab();
myTabHost.getTabWidget().getChildAt(tab).setBackgroundColor(Color.CYAN);
}
});
myTabHost.getTabWidget().getChildAt(tab).setBackgroundResource(R.drawable.your_state_list_filename);
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/darkblue1" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/darkblue1" /> <!-- focused -->
<item android:drawable="@drawable/lightblue1" /> <!-- default -->
</selector>
"@drawable/blahblah"
更改为"#FF121212"
,其中前两个数字是透明度,后面6个数字是所需颜色的十六进制值。我用过这个来解决我的问题:
tabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
tabs.setSelectedIndicatorColors(Color.RED);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:color/transparent">