当tabwidget背景从代码中设置时,tabwidget上的tabwidget分隔符会消失吗?

时间:2011-12-14 09:12:47

标签: android android-tabhost tabwidget divider

tabWidget中的

分隔符工作正常,但是当tab小部件的背景设置为

tabHost.getTabWidget().getChildTabViewAt(tabId).setBackgroundResource(R.drawable.tab_indicator);

问题是如何在设置背景后在选项卡小部件中设置分隔符 虽然我用过

tabhost.getTabWidget().setDividerDrawable(R.drawable.tab_widget_divider);

不适用于多个标签页。

1 个答案:

答案 0 :(得分:14)

分隔符可能有多种原因没有出现......

<强> 1。在将标签添加到tabHost工作之前,必须使用setDividerDrawable()。

<强> 2。默认情况下,每个tabindicator的视图设置为-2(左), - 2(右)边距...

默认情况下,系统使用9-patch drawables作为tabWidget背景,左侧和右侧至少有2个像素透明(或阴影效果为半透明)。

my custom tab example

1。示范


original system 9-path drawable in android 2.3.3 (selected) enter image description here

2。库存小部件背景的库存9路drawables。您可以使用它们进行实验


如果你不想使用9路抽象...... 您可以将边距设置为0,以防止标签视图与分隔线重叠。这是代码:

    View v;
    int count = tw.getTabCount();
    for (int i = 0; i < count; i++) {
        v = tw.getChildTabViewAt(i);
        v.setBackgroundResource(R.drawable.bg_tab);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
        params.setMargins(0, 0, 0, 0);
    }