【发布时间】:2014-01-28 09:00:50
【问题描述】:
所以我最近迁移到 gradle 现在我的自定义视图属性返回 null
我的项目是这样的
--custom_icon_view // 保存具有自定义属性的自定义视图的库 --my application // 这是实际使用自定义视图的主应用程序
在我的布局中,我有这样定义的命名空间:
xmlns:iconview="http://schemas.android.com/lib/be.webelite.iconview"
因为使用 apk/res-auto 会返回一个错误,提示无法识别属性
这就是我尝试获取在 xml 中定义的图标名称的方式,这曾经可以完美地工作 但现在它没有。而我所做的只是迁移到 gradle。
final TypedArray a = context.obtainStyledAttributes(attrs,be.webelite.iconview.R.styleable.icon);
icon_name = a.getString(be.webelite.iconview.R.styleable.icon_name);
所以我猜我的 gradle.build 文件导致了问题?
我将库设置为
apply plugin: 'android-library'
将主应用程序 gradle.build 结束为
apply plugin: 'android'
这已经让我头疼 2 天了 :( 非常感谢任何帮助/提示。
这是我的 gradle 文件
http://pastie.org/private/h57o8nanydosq0dtm6eiq
这是文件夹结构
http://pastie.org/private/nvbzomx2zeagdpzt8qqjsq
这就是我在 xml 中声明我的视图的方式
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<!-- tried res-auto didn't work -->
xmlns:iconview="http://schemas.android.com/apk/lib/be.webelite.iconview"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_gray">
<be.webelite.iconview.IconView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
iconview:icon_name="entypo_search"
android:textSize="25dp"/>
图标视图中的attrs.xml>res>values目录
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="icon">
<attr name="name" format="string" />
</declare-styleable>
</resources>
【问题讨论】:
-
您能否发布完整的 build.gradle 并详细描述您的项目层次结构?
-
@Andros 这是我的 gradle 文件 pastie.org/private/h57o8nanydosq0dtm6eiq 这是文件夹结构 pastie.org/private/nvbzomx2zeagdpzt8qqjsq
-
您能否发布一个使用自定义视图的 xml 文件的示例?
-
@Andros 我编辑了问题,添加了 xml 视图
-
发布您的 attrs.xml 您定义自定义视图属性的位置
标签: android attributes gradle android-custom-view