2016-06-24 2 views
0

Я использую ViewPageIndicator через градиент построения. Я чувствовал, что тема, представленная в файле стиля ViewPageIndicator, не оправдала мою пользу.Как ссылаться на стиль темы, определенный в библиотеке ViewPagerIndicator?

Так что я хочу перейти в пункт назначения файла темы, чтобы внести некоторые изменения, поэтому он будет соответствовать моим потребностям. Тем не менее, всплывающее уведомление Android Studio говорит, что не может найти объявление для перехода.

Кто-нибудь знает, как это исправить?

ответ

1

Я решил его со ссылкой на конкретные стили библиотеки в моей теме приложения. Если вы посмотрите на 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"/> 

Конечный результат: enter image description here

+0

Мы решили это по-разному. Единственное, что отличается от этого, это то, что вы нажали на кнопку, которая предоставляет вам доступ к переопределению ресурса напрямую, но я сделал это вручную, скопировав, вставив затем изменение. Где я могу найти эту кнопку для переопределения файла библиотеки? –

0

Я только что узнал ответ на этот вопрос. Мы можем использовать инструмент, разработанный для Android, для размещения любого файла темы, который существует в нашем проекте. Сначала откройте любой файл макета и переключитесь в представление дизайна. Затем выберите макет темы, который вы хотите просмотреть, затем нажмите кнопку ресурса извлечения, чтобы извлечь ресурс и создать для него имя. После этого вы увидите, что стиль, который вы только что назвали, отображается в вашем файле стиля. Но теперь этот файл стиля по-прежнему указывает на исходные файлы библиотеки, поэтому мы можем смотреть только, но не можем вносить в него какие-либо изменения. Пока мы можем его прочитать, мы можем скопировать и вставить его в другое место. Поэтому мы должны скопировать эти внутренние коды, чтобы вставить файл, который мы создали (имя файла не может совпадать с именем исходного файла). Решение сначала получает весь исходный файл, затем копирует и вставляет его в новый файл. Затем передал вашу тему в файл, который вы только что создали. И вы можете вносить изменения в свои созданные файлы в любое время и в любом месте. enter image description here

+0

К сожалению, я хотел следовать вашим шагам, но я не могу найти ** кнопки извлечения ресурсов **. Можете ли вы сделать скриншот? – RenatoIvancic

Смежные вопросы