突然间,我的RelativeLayout开始出现问题。问题是它不想识别使用ID定义的此RelativeLayout中的其他视图: 错误消息(在线 android:layout_alignBaseline =“@ id / editText3”)是:错误:找不到与给定名称匹配的资源(在'layout_alignBaseline'处,值为'@id / editText3' )。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/editText3"
android:text="Predaj: "
android:textSize="25dp" />
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textView3"
android:inputType="numberDecimal"
android:singleLine="true"
android:textSize="25dp"
android:textStyle="bold"
android:editable="false"
android:textIsSelectable="true" />
</RelativeLayout>
我无法理解似乎是什么问题 - 我已经尝试过清理,重建,重启PC,删除和重新创建整个文件(R.java),但错误不会消失。当我删除这行代码时,一切正常(除了对齐)。我有一种感觉,因为“textView3”是在“editText3”之前定义的,但它在过去的几天里都是这样的。 感谢您的建议 - 非常感谢
答案 0 :(得分:3)
感谢Francesco Gatto。它确实有助于在TextView中为EditText创建变量,因此代码现在看起来非常相似但实际上有效。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:text="Cena: "
android:textSize="25dp" />
<EditText
android:id="@id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textView1"
android:inputType="numberDecimal"
android:singleLine="true"
android:textSize="25dp"
android:textStyle="bold" />
</RelativeLayout>
所以我在分配layout_alignBaseline =“@ + id / editText”时已经创建了edittext变量,然后在EditText中我使用了相同的id(不再创建它)。
答案 1 :(得分:1)
或尝试在alignbaseline中编写+ @ id
答案 2 :(得分:0)
在声明它之后引用它并查看是否可以缓解错误。也是你在宣布之前提到的东西。您似乎想要一些可视文本然后是一个框,以便用户可以编辑textview右侧的文本。在RelativeLayouts中,只需让第一个视图自动显示出来,或者你可以将它放在父母身上。即。 (android:layout_alignParentLeft)。在RelativeLayouts中,我们将第一个视图用作父容器之外的起始参考点。我调整了你的代码,请告知它是否有意义:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp" >
<EditText
android:id="@+id/editText3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:singleLine="true"
android:textSize="25dp"
android:textStyle="bold"
android:editable="false"
android:textIsSelectable="true" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/editText3"
android:layout_alignBaseline="@id/editText3"
android:text="Predaj: "
android:textSize="25dp" />
</RelativeLayout>
答案 3 :(得分:0)
我知道它已经迟到了,但它可能对有同样问题的人有帮助。
将EditText
放在TextView
上方。它不会影响你正在做的事情,因为它是RelativeLayout
。
简单来说,Gradle会扫描代码的每一行,因为它没有找到您提到的ID,所以它显示错误。
之前的答案也是正确的,但实施起来要简单得多。