Android 元素必须被声明为标签形状的错误
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/20790708/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Element must be declared error for tag shape
提问by Simon Mokhele
I'm using Android Studio I/O(Preview) 0.3.2
我正在使用 Android Studio I/O(Preview) 0.3.2
I'm using this exampleto define background gradient in my app. I get Element must be declared error.
我正在使用此示例在我的应用程序中定义背景渐变。我得到元素必须被声明错误。
I've checked and I'm not find any solutions. Can anyone help me how can I declare that tag in the xml
我已经检查过,但没有找到任何解决方案。任何人都可以帮助我如何在 xml 中声明该标签
回答by Simon Mokhele
This problem was caused by my xml file. My gradient XML file was in the values
folder, I solved this problem by moving gradient file to drawable
folder
这个问题是由我的 xml 文件引起的。我的渐变 XML 文件在values
文件夹中,我通过将渐变文件移动到drawable
文件夹解决了这个问题
回答by RobotCharlie
You could just right click
你可以右键单击
res
资源
and hit
并击中
New
新的
, to create a
, 创建一个
Android Resource File
安卓资源文件
, and choose
,并选择
Resource Type
资源类型
to be
成为
Drawable
可绘制
, and change whatever the default
,并更改任何默认值
root element
根元素
to
到
shape
形状
Yeah it's kinda buggy in Android Studio to create a new XML file other than layout and values lol.
是的,在 Android Studio 中创建一个新的 XML 文件而不是布局和值是有问题的,哈哈。
hope it can help you!!
希望能帮到你!!
回答by Abakasha Panda
I had the same problem with Android Studio , I created a directory "anim" under "res" then copied the xml file to that one then the error gone.
我在 Android Studio 上遇到了同样的问题,我在“res”下创建了一个目录“anim”,然后将 xml 文件复制到那个目录,然后错误消失了。
回答by DiRiNoiD
You need to use selector inside <set/>
tags like that;
您需要在这样的<set/>
标签内使用选择器;
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="15dp"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="5dp"
android:valueType="floatType" />
</item>
</selector>
</set>
回答by Jon
Had a similar problem with the selector tag used to create a state list animator.
用于创建状态列表动画器的选择器标签也有类似的问题。
My animation was in the anim resource folder. Had to move it to the animator folder.
我的动画在动画资源文件夹中。不得不将它移动到动画文件夹。
回答by jcw
Looking at that example, I think if you add the xmlns:android
attribute (inside the shape tag, as in the example that you are following), it will work:
看看那个例子,我想如果你添加xmlns:android
属性(在 shape 标签内,就像你在下面的例子中一样),它会起作用:
xmlns:android="http://schemas.android.com/apk/res/android"
I suspect that shape
is declared there.
我怀疑那shape
是在那里宣布的。