【问题标题】:dividers between TabWidgetsTabWidgets 之间的分隔线
【发布时间】:2010-09-14 00:24:59
【问题描述】:

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

有人可以帮忙吗?我正在使用九个补丁的可绘制对象作为我的分隔图像可绘制对象。

MB

【问题讨论】:

  • 有人吗?!? :( 仅供参考:我目前使用的是 Android 2.1 API Level 7
  • 它对我来说很好用......知道为什么 android:divider 属性不可用,但仍然记录在案吗?

标签: android layout tabs tabwidget divider


【解决方案1】:

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

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

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

【讨论】:

  • 您的“在设置选项卡的内容之前调用它”这一行令人兴奋。解决了我的问题:)
【解决方案2】:

我在 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"

【讨论】:

    【解决方案3】:

    我遇到了这个问题,用下面的代码解决了

    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 添加到线性布局中。希望这可以帮助某人

    【讨论】:

    • 非常感谢!对我来说,当我针对较旧的 API 级别进行编译时,它不会编译,但是当修改为使用反射来调用该方法时,它就像一个魅力。
    【解决方案4】:

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

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

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

    【讨论】:

      【解决方案5】:

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

        mTabHost.getTabWidget().setDividerDrawable(null);
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-20
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多