ViewPager指标线条样式

时间:2017-10-10 09:30:40

标签: android xml android-viewpager android-tablayout

我正在为我的应用添加ViewPager以及图片指示器。

我希望指示器的形状是细线而不是通常的点。

为此,我从这个答案中引用了here

我试图修改给定的XML文件,如下所示:

default_dot.xml ---> default_line.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="line">

            <solid android:color="@android:color/darker_gray"/>

            <corners
                android:bottomRightRadius="7dp"
                android:bottomLeftRadius="7dp"
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp" />
        </shape>
    </item>
</layer-list>

selected_dot.xml -----&gt; selected_line.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="line">


            <solid android:color="@color/colorAccent"/>

            <corners
                android:bottomRightRadius="7dp"
                android:bottomLeftRadius="7dp"
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp" />
        </shape>
    </item>
</layer-list>

文件 tab_selector.xml 保持不变,只需更改相应xml文件的名称。

所以,这一切的结果是,显示selected_line.xml(粉红色的),然而,default_line.xml没有显示,所以我可以看到粉红色像当我滑动图片时向右/向左移动,但没有默认的灰线。

1 个答案:

答案 0 :(得分:0)

请按如下所示更改您的selected_line.xml

<item>

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="line">

        <stroke
            android:width="@dimen/activity_horizontal_margin"
            android:color="@color/colorAccent" />
        <size android:height="1dp" />

        <solid android:color="@color/colorAccent" />

        <corners
            android:bottomLeftRadius="7dp"
            android:bottomRightRadius="7dp"
            android:topLeftRadius="7dp"
            android:topRightRadius="7dp" />

    </shape>

</item>