我有一个布局,左侧有一组小部件,右侧有一些小部件。
现在我想在中间放置一个按钮,下面是两个文本视图(一个在左边,另一个在右边)。
我收到错误(“重复属性”),代码如下:
android:layout_centerInParent="true"
android:layout_below="@id/text_left"
android:layout_below="@id/text_right"
我该如何解决这个问题?
感谢。
答案 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_left
和text_right
合并为一个布局,然后使用layout_below
并为其指定名称给出了包含text_left
和text_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>