如何更改 android 中选项卡式 activity 的选项卡指示符样式(默认为下划线)?

How to change the style of tab indicator (default one is an underline ) of tabbed activity in android?

please click here to view the picture

上图是SYMPTOMATE 应用程序的屏幕截图。我想创建一个选项卡 activity 与该图片中显示的相同。滑动选项卡时,每个圆圈都会相应突出显示。请建议一种自定义选项卡指示器的方法。

对于自定义 TabLayout,您需要编写自定义资源。特别是你需要这个 drawables。

  1. Tab 指示器默认状态 (indicator_default.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
           android:innerRadius="0dp"
           android:shape="ring"
           android:thickness="5dp"
           android:useLevel="false">
           <solid android:color="@android:color/darker_gray"/>
       </shape>
    

  2. 选项卡指示器选中状态(indicator_selected.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
            android:innerRadius="0dp"
            android:shape="ring"
            android:thickness="8dp"
            android:useLevel="false">
            <solid android:color="@color/colorPrimary"/>
        </shape>
    </item>
    

  3. 选项卡指示符选择器(indicator_selector.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
       <item android:drawable="@drawable/indicator_selected"
          android:state_selected="true"/>
    
       <item android:drawable="@drawable/indicator_default"/>
    </selector>
    

最后你应该在你的布局中添加你的 TablLayout 定义标签背景如下

<android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="match_parent"
    android:layout_height="
    app:tabBackground="@drawable/tab_selector"
    app:tabGravity="center"/>