Я решил его со ссылкой на конкретные стили библиотеки в моей теме приложения. Если вы посмотрите на source code of ViewPageIndicator вы видите крючки, где вы можете переопределить стили индикатора:
- vpiIconPageIndicatorStyle
- vpiCirclePageIndicatorStyle
- ...
Это основные ссылки на Widget стиль. Например, для CirclePageIndicator вы должны расширить тему виджета и связать его с vpiCirclePageIndicatorStyle. Затем вы можете установить все свойства виджета, а также пользовательские свойства CirclePageIndicator, которые вы можете найти в attributes.
Моя тема файла (styles.xml) относительно ViewPagerindicator:
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="vpiCirclePageIndicatorStyle">@style/Widget.CirclePageIndicator</item>
...
</style>
<style name="Widget.CirclePageIndicator" parent="Widget">
<item name="android:layout_marginBottom">10dp</item>
<item name="android:layout_marginTop">5dp</item>
<item name="android:padding">3dp</item>
<item name="fillColor">@color/borders</item>
<item name="gapWidth">@dimen/view_pager_circle_page_indicator_gap</item>
<item name="radius">@dimen/view_pager_circle_page_indicator_radius</item>
<item name="strokeColor">@color/borders</item>
<item name="strokeWidth">@dimen/view_pager_circle_page_indicator_stroke</item>
</style>
И в макете XML, нет необходимости указывать стиль = "@ стиль/..." собственности.
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/pagerIndicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Конечный результат:
Мы решили это по-разному. Единственное, что отличается от этого, это то, что вы нажали на кнопку, которая предоставляет вам доступ к переопределению ресурса напрямую, но я сделал это вручную, скопировав, вставив затем изменение. Где я могу найти эту кнопку для переопределения файла библиотеки? –