我在构建gradle中使用ViewPageIndicator。我觉得ViewPageIndicator样式文件中提供的主题不适合我。
所以我想去主题文件目的地进行一些修改,因此它符合我的需要。但是,Android Studio弹出通知说无法找到声明。
任何人都知道如何修复它?
答案 0 :(得分:1)
我通过引用自定义应用主题中的特定库样式解决了这个问题。如果你看source code of ViewPageIndicator 你会看到可以覆盖指标样式的钩子:
这些是Widget样式的基本参考。例如,对于 CirclePageIndicator ,您应该扩展Widget主题并将其链接到 vpiCirclePageIndicatorStyle 。然后,您可以设置所有Widget属性以及您可以在attributes中找到的自定义CirclePageIndicator属性。
关于ViewPagerindicator的主题文件(styles.xml):
<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中,无需指定 style =&#34; @style /..." 属性。
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/pagerIndicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
答案 1 :(得分:0)
我刚刚找到了这个问题的答案。我们可以使用Android提供的设计工具来定位我们项目中存在的任何主题文件。首先打开任何布局文件并切换到设计视图。接下来,选择要查看的主题布局,然后单击“提取资源”按钮以提取资源并为其创建名称。完成后,您将看到您刚刚命名的样式出现在样式文件中。但是现在,这个样式文件仍然指向原始库文件,因此我们只能查看它,但不允许对其进行任何修改。只要我们能够阅读它,我们就可以将其复制并粘贴到其他地方。因此我们应该复制内部代码以粘贴我们创建的文件(文件名不能与原始文件名相同)。解决方案是先访问所有原始文件,然后将其复制并粘贴到新文件中。然后将您的主题引用到您刚刚创建的文件中。您可以随时随地对创建的文件进行修改。 enter image description here