为了使选项卡主机透明,我实现了以下代码。
for(int i = 0; i < th.getTabWidget().getTabCount(); i++)
{
th.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
}
这会在 ICS 中成功将所有选项卡的背景更改为透明,但是当我在 2.2 和 2.3 上测试它时前 3 个选项卡背景是透明的,后 3 个不是(我总共有 6 个选项卡((顺便说一下,第一个 3 个选项卡是该活动开始时出现的选项卡(
是什么原因造成的,我该如何解决它...请帮忙..
应用您的建议后,这就是我包含在代码中的内容,
th.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
manageTabBackgrounds();
}
private void manageTabBackgrounds() {
// TODO Auto-generated method stub
for(int i = 0; i < th.getTabWidget().getTabCount(); i++)
{
th.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
}
}
});
但是,这似乎对选项卡没有影响...请指导..
确保在 TabChanged 上执行此操作...
将你所拥有的内容放在一个函数中(例如,"manageTabBackgrounds",然后:
yourTabHostInstance.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
manageTabBackgrounds();
}
});
这就是最终对我有用的东西。
th.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
for(int i=0;i<th.getTabWidget().getChildCount();i++)
{
th.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT); //unselected
}
th.getTabWidget().getChildAt(th.getCurrentTab()).setBackgroundColor(Color.TRANSPARENT); // selected
}
});
你试过这个吗?
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/transparent">
</TabWidget>