Android XML属性不支持自定义库



我目前正在构建一个库项目,我在XML属性方面遇到了一些问题。在库模块中我创建了declare-styleable in attrs.xml

<resources>
<declare-styleable name="betterTextViewAttrs">
    <attr name="typefaceAsset" format="string"/>
    <attr name="scaleWithinBounds" format="boolean"/>
</declare-styleable>

并且我想在项目的示例布局中引用attrs。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bettertv="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.virtualprodigy.bettertextviewsample.MainActivity">
<com.virtualprodigy.bettertextview.BetterTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    bettertv:typefaceAsset="dancing _script.ttf"
    bettertv:scaleWithinBounds="false"
    app:layout_constraintBottom_toBottomOf="@+id/activity_main"
    app:layout_constraintLeft_toLeftOf="@+id/activity_main"
    app:layout_constraintRight_toRightOf="@+id/activity_main"
    app:layout_constraintTop_toTopOf="@+id/activity_main" />

但由于某种原因xmlns:bettertv="http://schemas.android.com/apk/res-auto"不工作。当我编译时,我得到以下错误:

Error:(11) No resource identifier found for attribute 'typefaceAsset' in package 'com.virtualprodigy.bettertextviewsample'

完整的源代码可以在GitHub上找到。如有任何帮助,不胜感激。

BetterTextView GitHub Project

在盯着我的项目后,我意识到了这个问题。即使Android Studio通过GUI为您创建了一个库项目,它也不会自动在build.gradle文件中添加compile project(':bettertextview')。更新这个完全解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新