我使用形状元素作为视图的背景,像SO question一样。我使用的是Android Studio,它告诉我......
Element shape doesn't have required attribute android:layout_height
Element shape doesn't have required attribute android:layout_width
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/darkBrown"/>
<stroke android:layout_width="match_parent" android:layout_height="match_parent"/>
<corners android:radius="10dip"/>
<padding android:left="0dip" android:right="0dip" android:top="0dip" android:bottom="0dip"/>
</shape>
基本上我的问题是:如果技术上的形状不需要这些属性,为什么会出现此错误?如何告诉android停止将其标记为错误或如何避免它?
谢谢。
已解决:原因是因为它不在drawable
文件夹中。
编辑:是的我知道中风部分不正确。
答案 0 :(得分:20)
显示错误的原因是因为它不在drawable
文件夹中。 (当我在拼写错误后重命名layout
文件夹时,它会自动移至drawable
。
答案 1 :(得分:1)
以下是形状应如下所示的示例:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners
android:radius="14dp"
/>
<solid
android:color="#ADD8E6"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<size
android:width="100dp"
android:height="60dp"
/>
<stroke
android:width="3dp"
android:color="#ADD8E6"
/>
</shape>
答案 2 :(得分:0)
首先,您的可绘制XML不正确。您不能只使用自己喜欢的属性并希望它能够正常运行,例如<stroke>
android:layout_width
和android:layout_height
对<stroke>
没有意义,并且不受支持。它也是android:width
,但这与width
不同,与layout_width
没有任何共同之处。文档are here并包含所有支持的属性。