Android XML Attrs不使用自定义库

时间:2016-06-29 02:24:42

标签: android xml xml-namespaces android-library

我目前正在构建一个库项目,但我遇到了一些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

1 个答案:

答案 0 :(得分:0)

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