【问题标题】:Circle page indicator - how to change fill color changing圆形页面指示器 - 如何更改填充颜色
【发布时间】:2018-07-21 21:39:20
【问题描述】:

我在我的 Android 应用程序中使用 ViewPageIndicator,特别是 CirclePageIndictor。要求是 fillColor 会直接移动到指示器中的下一个圆圈,而不会出现图中这种情况(圆圈移动缓慢并在分页时停留在中间)

我该怎么做?

【问题讨论】:

  • 您找到解决方案了吗?我用vpi:snap="true"vpi.setSnap(true); 没有得到这个效果

标签: android


【解决方案1】:

你可以在你的 xml 上试试这个:

<com.viewpagerindicator.CirclePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
        app:radius="12dp"
        app:fillColor="@color/header_bg_color"
        app:pageColor="#ffffff"
        app:strokeColor="@color/header_bg_color"/>

并且不要忘记在您的布局中添加 xmlns:app="http://schemas.android.com/apk/res-auto"。 例如

 <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />

    <com.viewpagerindicator.CirclePageIndicator
            android:id="@+id/indicator"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="10dip"
            app:radius="12dp"
            app:fillColor="@color/header_bg_color"
            app:pageColor="#ffffff"
            app:strokeColor="@color/header_bg_color"/>

</LinearLayout>

【讨论】:

  • 我已经尝试过,但仍然以其他方式显示默认颜色?
【解决方案2】:

将 snap 属性设置为 true。

vpi:snap="true"

vpi.setSnap(true);

【讨论】:

  • 我应该在哪里设置这个?在我的情况下,当我更改页面时,指示器没有改变,但我的页面内容正在改变。
【解决方案3】:
final CirclePageIndicator circleIndicator = (CirclePageIndicator) findViewById(R.id.indicator);
    circleIndicator.setViewPager(_pager);
    final float density = getResources().getDisplayMetrics().density;
    circleIndicator.setFillColor(0xFFFFFFFF);
    circleIndicator.setStrokeColor(0xFFFFFFFF);
    circleIndicator.setStrokeWidth(1);
    circleIndicator.setRadius(6 * density);

【讨论】:

    【解决方案4】:

    试试 app:snap="true"

     <com.viewpagerindicator.CirclePageIndicator
                android:id="@+id/indicator"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                app:snap="true"/>
    

    【讨论】:

      猜你喜欢
      • 2021-11-26
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多