当tabwidget背景从代码中设置时,tabwidget中的tabwidget divder会消失吗?

Kri*_*tha 1 android tabwidget divider android-tabhost

tabWidget中的divider工作正常但是当tab小部件的背景设置为

tabHost.getTabWidget().getChildTabViewAt(tabId).setBackgroundResource(R.drawable.tab_indicator);
Run Code Online (Sandbox Code Playgroud)

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

tabhost.getTabWidget().setDividerDrawable(R.drawable.tab_widget_divider);
Run Code Online (Sandbox Code Playgroud)

是不适用于多个选项卡.

Ada*_*oth 14

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

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

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

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

我的自定义标签示例

示威


原始系统9-path drawable in android 2.3.3(已选中)在此输入图像描述

2.标签小工具背景的库存9路绘图.您可以使用它们进行实验


如果您不想使用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);
    }
Run Code Online (Sandbox Code Playgroud)