Tur*_*rix 8 xml eclipse android namespaces android-layout
我试图在一些Android布局中使用自定义属性,但是当我尝试使用除android:子元素之外的命名空间前缀时,我收到了一个错误(来自Eclipse).请注意,当我custom:在文件的root/parent元素中使用名称空间前缀时,它可以正常工作,而不是子元素.
例如,这是一个指定了自定义命名空间的简单布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
custom:my_tag1="whatever"> <!-- compiles fine -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
custom:my_tag2="true"/> <!-- generates an error -->
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Eclipse给出的错误(仅在第二次尝试使用custom:前缀时)是:
为标记ImageView找到了意外的名称空间前缀"custom".
如果我使用我的根元素ImageView而不是a LinearLayout,则接受前缀.因此,在子元素中使用命名空间前缀似乎只是一个问题.
此外,如果我尝试向xmlns:custom="http://schemas.android.com/apk/res-auto"ImageView 添加另一个属性,它也会抱怨.
如果有帮助,这里是attrs.xml我正在使用的文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="my_tag1" format="string"/>
<attr name="my_tag2" format="boolean"/>
</resources>
Run Code Online (Sandbox Code Playgroud)
我在网上看到一些东西让我相信我想做的事应该是可能的.例如,在这里接受的答案中,Qberticus在子类中使用前缀"whatever".同样在这里的帖子.
我不明白.使用非android命名空间前缀只是不允许子元素,或者我做错了什么?
可以忽略,我一直都是这么做的,没有遇到什么问题。要让它消失,您需要设置以下内容:
xmlns:tools="http://schemas.android.com/tools"到您的根视图tools:ignore="MissingPrefix"到您的文本视图不过,顺便说一句,我通常将自定义属性与自定义视图一起使用:-)
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |