是否可以更改TabHost/Widget的背景颜色?或者至少是应用程序背景



我正在为我的Android应用程序创建一些自定义选项卡,但是设计师在顶部设计了小曲线的选项卡。因此,在这些曲线之间应该有一个"透明"的颜色。

制作曲线并不困难,但问题是,标签主机显然有主题背景色,而不是透明的背景色(在我的例子中是白色)。

我不认为这是可能的透明背景色,因为屏幕内容是上面(在我的情况下)的选项卡。第二种选择是将选项卡内容"移动"到tabWidget的顶部一些像素,但似乎也不可能。最后一个选择是,让应用程序的背景颜色与默认的应用程序背景颜色相匹配,或者使用可绘制的背景颜色。

如果有可能的话?

如果没有

,最糟糕的情况是简单地为每个选项卡设置背景颜色;只是想知道。

谢谢!

你好,希望对你有所帮助。

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab);
    host = getTabHost();
        host.addTab(host.newTabSpec(Constants.TAG_TAB1).setIndicator(Constants.TAG_TAB1,getResources().getDrawable(R.drawable.img1)).setContent(new Intent(this, Activity1.class)));
    host.addTab(host.newTabSpec(Constants.TAG_TAB2).setIndicator(Constants.TAG_TAB2,getResources().getDrawable(R.drawable.img2)).setContent(new Intent(this, Activity2.class);
    host.addTab(host.newTabSpec(Constants.TAG_TAB3).setIndicator(Constants.TAG_TAB3,getResources().getDrawable(R.drawable.img3)).setContent(new Intent(this, Activity3.class)));
    host.addTab(host.newTabSpec(Constants.TAG_TAB4).setIndicator(Constants.TAG_TAB4,getResources().getDrawable(R.drawable.img4)).setContent(new Intent(this, Activity4.class)));
        host.setCurrentTab(0);

        for(int i=0;i<host.getTabWidget().getChildCount();i++)
        {
            host.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
        }
        host.getTabWidget().getChildAt(host.getCurrentTab()).setBackgroundResource(android.R.color.transparent);// selected
    host.setOnTabChangedListener(this);
}

    @Override
    public void onTabChanged(String tabId) 
    {
        for(int i=0;i<host.getTabWidget().getChildCount();i++)
        {
            host.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
    }
        host.getTabWidget().getChildAt(host.getCurrentTab()).setBackgroundResource(android.R.color.transparent);// selected
    }

相关内容

  • 没有找到相关文章

最新更新