fragmenttabhost,无法删除选项卡之间的间隙

时间:2014-09-10 10:17:14

标签: android android-layout tabwidget

我需要为我的标签更改指标边框线,所以我执行以下操作:

           //set custom background for each tab
View v;
            int count = tabWidget.getTabCount();
            for (int i = 0; i < count; i++) {
                v = tabWidget.getChildTabViewAt(i);
                v.setBackgroundResource(R.drawable.tab_selector_main);
                v.setPadding(0, 0, 0, 0);
                ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
                params.setMargins(-Utils.dpToPx(3, this), 0, -Utils.dpToPx(3, this), 0);
            }

这是我的drawable,其中我设置了9个补丁

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:state_pressed="true"
          android:drawable="@drawable/tab_selected_pressed_green" />

    <item android:state_selected="true" android:state_pressed="false"
          android:drawable="@drawable/tab_selected_unpressed_green" />

    <item android:state_pressed="true"
          android:drawable="@drawable/tab_unselected_pressed" />
    <item android:drawable="@drawable/tab_unselected_unpressed"/>
</selector>

问题是,在那之后,默认分隔符消失了,并且标签之间存在一些差距。如何启用默认分隔符或设置我的?我谷歌很多,似乎没有什么帮助我。我使用4.0.4版本和fragmenttabhost与tabwidget。谢谢。 enter image description here

UPD:我发现我的9补丁中存在什么问题。我将颜色更改为透明,除了底部指示线和setDividerDrawable开始工作。但底部指标线之间仍有差距。

2 个答案:

答案 0 :(得分:2)

您可以在XML布局中使用android:showDividers =“none”。

<TabWidget
    android:id="@android:id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:showDividers="none" />

答案 1 :(得分:0)

        android:divider="@null" <-Works like a charm