我按照this指南为我的应用制作了自定义ListView
。本教程使用名为ottasee的命名空间,该命名空间应定义为元素内的xml命名空间。所以这是我的一些代码:
<com.my.app.Layout.CustomListView
xmlns:ottasee="what_should_i_put_here?"
android:id="@+id/lastCases"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="@null"
android:scrollbars="none"
ottasee:dropShadowBottom="true"
ottasee:dropshadowrightsrc="@drawable/drop_shadow"
/>
我可以看到属性ottasee:dropShadowBottom
和ottasee:dropshadowrightsrc
属于values文件夹中attrs.xml
的一部分。像这样:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<declare-styleable name="DropShadowListView">
<attr format="boolean" name="dropShadowLeft"></attr>
<attr format="reference" name="dropShadowLeftSrc"></attr>
<attr format="boolean" name="dropShadowRight"></attr>
<attr format="reference" name="dropShadowRightSrc"></attr>
<attr format="boolean" name="dropShadowTop"></attr>
<attr format="reference" name="dropShadowTopSrc"></attr>
<attr format="boolean" name="dropShadowBottom"></attr>
<attr format="reference" name="dropShadowBottomSrc"></attr>
</declare-styleable>
</resources>
如何为ListView
定义xml名称空间以便从attrs.xml
文件中获取属性?
谢谢!
修改
我的CustomListView位于包com.my.app.Layout
下,我尝试以这种方式声明ns:xmlns:ottasee="http://schemas.android.com/apk/res/com.my.app.Layout
但我只在xml文件中出错:
Multiple annotations found at this line:
- error: No resource identifier found for attribute 'dropShadowBottom' in package
'com.my.app.Layout'
- error: No resource identifier found for attribute 'dropshadowrightsrc' in package
'com.my.app.Layout'
如何设置正确的ns?
答案 0 :(得分:2)
您应该添加以下内容以包含命名空间的必要属性:
xmlns:ottasee ="http://schemas.android.com/apk/res-auto"
与@ budius的答案略有不同,因为它会为您自动解析包名。
答案 1 :(得分:1)
通常XML编辑器会为你做这件事,我甚至从不担心,但就像那样:
xmlns:ottasee="http://schemas.android.com/apk/res/com.your.package.name"