4

Is the android:divider attribute under the TabWidget working? I tried the Tab Layout tutorial from android just to test (http://developer.android.com/resources/tutorials/views/hello-tabwidget.html) and set the android:divider to some image (for now I used the android vertical scrollbar as the drawable to really emphasize if its getting picked up (copied it from frameworks), but when I ran it on the emulator, it doesn't appear to be working. According to the docs, the TabWidget does seem to support this attribute: "Drawable used to draw the divider between tabs."

Can anyone help? I am using a nine-patched drawable as my divider image drawable.

MB

4

5 回答 5

19

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

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

但是,请确保在设置选项卡的内容之前调用它。如果我之后调用它,它会在我身上崩溃。

于 2010-10-30T23:21:50.670 回答
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"

于 2013-01-31T02:36:09.467 回答
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 级别 11 添加到线性布局中。希望这可以帮助某人

于 2013-04-25T07:02:23.303 回答
1

我自己也有同样的问题。我只在 Ice Cream Sandwich (ICS / 4.0.x) 中看到了问题。在 android 1.6 - 2.3.4 中没有问题,在代码中或在 xml 布局中设置可绘制对象时,分隔符会正确显示。

我已经尝试了几乎所有我能想到的方法来修复它,但没有任何效果,包括上面 Josh 的回答 :( 虽然我注意到当将任何可绘制对象设置为分隔线时,它会占用选项卡之间的空间,就好像有一个那里可绘制,但它只是不可见。

希望这能给其他人一个关于可能发生的事情的提示..?

于 2012-05-29T11:55:17.923 回答
0

我使用下面的神奇线条从标签栏中删除了分隔线。

  mTabHost.getTabWidget().setDividerDrawable(null);

或者

  mTabHost.getTabWidget().setDividerDrawable(R.Color.transperant);
于 2014-09-09T05:16:30.063 回答