TabWidgets之间的分隔线

时间:2010-09-14 00:24:59

标签: android layout tabs tabwidget divider

TabWidget下的android:divider属性是否有效?我试过android的Tab Layout教程只是为了测试(http://developer.android.com/resources/tutorials/views/hello-tabwidget.html)并将android:divider设置为某个图像(现在我使用android垂直滚动条作为drawable来真正强调它是否被拾取(复制它)来自框架),但是当我在模拟器上运行时,它似乎没有工作。根据文档,TabWidget似乎支持这个属性:“Drawable用于在选项卡之间绘制分隔符。”

有人可以帮忙吗?我正在使用一个9补丁的drawable作为我的分隔图像drawable。

MB

5 个答案:

答案 0 :(得分:19)

divider看起来TabWidget属性不再可用了。添加自定义分隔符的一种方法是以编程方式设置它:

mTabHost.getTabWidget().setDividerDrawable(R.drawable.divider_vertical_dark);

但请确保在之前调用此,以设置标签的内容。如果我之后给它打电话,它会崩溃。

答案 1 :(得分:7)

我在ICS中遇到了问题,其中分隔符可见。除以下情况外,没有一种解决方案有效。

<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:gravity="bottom"
            android:layout_alignParentBottom="true"
            android:fadingEdge="none"
            android:showDividers="none" >
        </TabWidget>

关键字是android:showDividers="none"

答案 2 :(得分:7)

我遇到了这个问题并使用以下代码解决了这个问题

tabHost1.getTabWidget().setDividerDrawable(R.drawable.example1);
if(Build.VERSION.SDK_INT >= 11)
    tabHost1.getTabWidget().setShowDividers(TabWidget.SHOW_DIVIDER_MIDDLE);

对于低于11的api级别,它适用于第一行。对于11和更高,我包括这个以使这工作。 setShowDividers在api level 11的linearlayout中添加。希望这有助于某人

答案 3 :(得分:1)

我自己也有同样的问题。我只看到冰淇淋三明治(ICS / 4.0.x)中的问题。在Android 1.6 - 2.3.4中没有问题,在代码中设置drawable时,或者在xml布局中,分隔符正确显示。

我已经尝试过几乎所有我能想到的东西来修复它但是没有任何效果,包括Josh的答案:(虽然我注意到当设置任何drawable作为分隔符时,它会占用标签之间的空间,就好像那里有一个抽屉,但它只是不可见。

希望能给别人一个关于可能发生的事情的暗示......?

答案 4 :(得分:0)

我使用下面的魔法线从tabbar中删除了分隔线。

  mTabHost.getTabWidget().setDividerDrawable(null);

OR

  mTabHost.getTabWidget().setDividerDrawable(R.Color.transperant);