我有两个文本视图声明如下。我的目的是并排显示两个视图,其中左视图(显示用户名)具有更大的文本大小,右视图显示最后一个消息发送的时间,并且应始终可见(即使用户名字很长,这就是为什么我' m使用android:layout_toLeftOf)。但是,左视图较小,我想将其基线与右视图对齐。这是非常好的依赖在哪里,我无法解决它。
部分可接受的解决方案是在右视图中使用“android:layout_toRightOf”,但如果用户的名字很长,那么时间(右视图)将被椭圆化(它在AppTheme.TextView.SingleLine中声明)。
所以基本上,我的问题是,两个视图是否可以相互引用?我明白为什么我会收到这个错误,但是我无法解决它。 我记得在我的C / C ++时代,可以在文件的顶部声明函数,然后在其他地方定义它(因此编译器不会抱怨),我认为这是我需要的东西。
<TextView
android:id="@+id/fragment_messages_item_sender_name"
style="@style/AppTheme.TextView.SingleLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/fragment_messages_item_last_msg_time"
android:textSize="@dimen/global_text_large"/>
<TextView
android:id="@+id/fragment_messages_item_last_msg_time"
style="@style/AppTheme.TextView.SingleLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/fragment_messages_item_sender_name"
android:layout_alignParentEnd="true"
android:gravity="right"/>
我所得到的只是
Error:(27, 38) No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/fragment_messages_item_last_msg_time').
答案 0 :(得分:1)
在R class id中
fragment_messages_item_last_msg_time
不存在 为避免该问题需要在具有id关系的声明字段之前使用“+”
android:layout_toLeftOf="+@id/fragment_messages_item_last_msg_time"
答案 1 :(得分:0)
您可以在另一个android:layout_alignBaseline
中移动TextView
。注意id循环,通常会产生令人讨厌的崩溃。
关于您的问题,您必须记住R中的条目标记为public static final
,并且+
为指定ID生成新条目,如果它不存在,那么您可以有:
android:layout_toLeftOf="@+id/fragment_messages_item_last_msg_time"
在第一个TextView
和
android:id="@id/fragment_messages_item_last_msg_time"
到第二个。正如我之前提到的,不允许在RelativeLayout中使用循环,这些将使您的应用程序崩溃
答案 2 :(得分:0)
Hi use below code :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/fragment_messages_item_sender_name"
style="@style/AppTheme.TextView.SingleLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Manish" />
<TextView
android:id="@+id/fragment_messages_item_last_msg_time"
style="@style/AppTheme.TextView.SingleLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Khamar" />
</LinearLayout>