Android:“重复属性”XML错误

时间:2012-12-20 17:23:12

标签: android xml

我有一个布局,左侧有一组小部件,右侧有一些小部件。

现在我想在中间放置一个按钮,下面是两个文本视图(一个在左边,另一个在右边)。

我收到错误(“重复属性”),代码如下:

android:layout_centerInParent="true"
android:layout_below="@id/text_left"
android:layout_below="@id/text_right"

我该如何解决这个问题?

感谢。

5 个答案:

答案 0 :(得分:38)

如果在不同的布局中具有相同的xmlns属性,也会发生此错误消息。

在这种情况下,xmlns:tools在布局和ConstraintLayout中重复。 从其中一个布局中删除它应该可以解决问题。

    <layout xmlns:tools="http://schemas.android.com/tools"
        xmlns:android="http://schemas.android.com/apk/res/android"> 

        <data>
            <variable
                name="item"
                type="com.myapp.SearchSettings" />
        </data>

        <android.support.constraint.ConstraintLayout

            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools" <-- remove this line

(it is already in layout tag)

答案 1 :(得分:13)

您正在设置layout_below两次。

如果您希望相关布局低于这两个布局,请尝试将text_lefttext_right合并为一个布局,然后使用layout_below并为其指定名称给出了包含text_lefttext_right

组合的布局

答案 2 :(得分:1)

您正在设置layout_below两次。

android:layout_below="@id/text_left"
android:layout_below="@id/text_right"

每个小部件只能设置一次,在这种情况下是Button。您实际上是想通过多次调用Button来告诉android:layout_below将自己置于两个不同的项目下面。

如果最终结果不是您期望的只使用TextViews中的一个,则可能需要将参考点调整为跨越整个宽度的某个内容,或者将TextViews包裹在LinearLayout中{1}}并将其用作参考点。在根级别切换布局类型可能更容易,移动到LinearLayout并根据需要嵌套它们。

答案 3 :(得分:0)

您需要选择一个android:layout_below。你不能兼得。

答案 4 :(得分:0)

对于这些,不能接受的答案不起作用,并且通过使用android 数据绑定进行任何更改,如果某些属性在父标记中也出现两次,则可能会出现这种错误作为子标签。在下面的示例中,在父母孩子中,两次使用了android:layout_width="match_parent" android:layout_height="wrap_content"

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <data>

        <variable
            name="pdpDescriptionViewModel"
            type="com.tottus.ui.productdescription.model.PdpDescriptionViewModel" />
    </data>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </LinearLayout>


</layout>

解决此 从父或子中删除重复属性 ,它应该可以正常工作。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data>

        <variable
            name="pdpDescriptionViewModel"
            type="com.tottus.ui.productdescription.model.PdpDescriptionViewModel" />
    </data>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </LinearLayout>


</layout>