【问题标题】:Is there a way to add vertical line between each tab in TabLayout有没有办法在 TabLayout 中的每个选项卡之间添加垂直线
【发布时间】:2016-08-23 09:16:53
【问题描述】:

TabLayout 为 viewpager 构建一个滑动选项卡非常有用,除了据我所知,您无法像 TabHost 在代码或 xml 中那样在选项卡之间添加垂直线,所以还有其他方法可以轻松做到这一点?

【问题讨论】:

标签: android


【解决方案1】:

TabLayout 实际上是一个水平可滚动的LinearLayout。

只需使用以下代码添加分隔符:

    LinearLayout linearLayout = (LinearLayout)tabLayout.getChildAt(0);
    linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
    GradientDrawable drawable = new GradientDrawable();
    drawable.setColor(Color.GRAY);
    drawable.setSize(1, 1);
    linearLayout.setDividerPadding(10);
    linearLayout.setDividerDrawable(drawable);

【讨论】:

  • 不错的解决方案,比添加自定义视图更好。谢谢!
  • 比添加自定义视图更好谢谢
  • 这个解决方案对我有用,但即使我设置了 show_divider_middle,它也会在第一项之前添加一个分隔符。
  • 太棒了!简单的解决方案。
  • 这不适用于材料包中较新的 TabLayout。请参阅:com.google.android.material.tabs.TabLayout 这是HorizontalScrollView
【解决方案2】:

试试这个,

您可以在 tab_indicator 布局文件中手动添加行。

对于水平线,

<View
    android:layout_height="1dp"
    android:id="@+id/line"
     android:layout_width="fill_parent"
      android:background="your color" />

对于垂直线

<View
    android:layout_height="7dp"
    android:id="@+id/line"
     android:layout_width="1dp"
      android:background="your color" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多