gpt4 book ai didi

android - 在布局中的子元素中使用非 android 命名空间前缀

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:16 27 4
gpt4 key购买 nike

我尝试在某些 Android 布局中使用自定义属性,但是当我尝试在子元素中使用 android: 以外的 namespace 前缀时,我收到了一个错误(来自 Eclipse)。请注意,当我在文件的根/父元素(而不是子元素)中使用 custom: 命名空间前缀时,它工作正常。

例如,这是一个指定了自定义命名空间的简单布局:

<?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>

Eclipse 给出的错误(仅在 第二次 尝试使用 custom: 前缀时)是:

Unexpected namespace prefix "custom" found for tag ImageView.

如果我将我的根元素设为 ImageView 而不是 LinearLayout,则接受前缀。所以这似乎只是在子元素中使用 namespace 前缀的问题。

此外,如果我尝试向 ImageView 添加另一个 xmlns:custom="http://schemas.android.com/apk/res-auto" 属性,它也会提示。

如果有帮助,这是我在上面使用的 attrs.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="my_tag1" format="string"/>
<attr name="my_tag2" format="boolean"/>
</resources>

我在网上看到一些东西让我相信我想做的事情应该是可能的。例如,在接受的答案中 here ,Qberticus 在子类中使用前缀“whatever”。同样在帖子here .

我不明白。子元素不允许使用非 Android 命名空间前缀,还是我做错了什么?

最佳答案

可以忽略,我一直在做,没遇到什么问题。要让它消失,您需要设置以下内容:

  1. xmlns:tools="http://schemas.android.com/tools" 添加到您的 Root View
  2. tools:ignore="MissingPrefix" 添加到您的 TextView

然而,附带说明一下,我通常将自定义属性与自定义 View 一起使用:-)

关于android - 在布局中的子元素中使用非 android 命名空间前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446255/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com