我在同一行中有两个textview,两个textview没有静态内容,当第二个textview加载数据时出现问题,这需要第二行但不完全从左边开始。 我希望你能帮助我。
代码是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="uno"
android:visibility="visible"
android:textSize="@dimen/msg_text_primary"
android:textColor="@color/from"
android:maxLines="1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/text_titulo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="titulo"
android:ellipsize="end"
android:textSize="@dimen/msg_text_primary"
android:textColor="@color/from"
android:maxLines="2"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/add"
android:layout_toEndOf="@+id/add"
android:layout_marginLeft="2dp"
android:layout_alignParentLeft="false"
android:layout_toLeftOf="@+id/add"
/>
</RelativeLayout>
答案 0 :(得分:0)
如果你真的必须保留RelativeLayout
,我建议将其替换如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="uno"
android:visibility="visible"
android:textSize="@dimen/msg_text_primary"
android:textColor="@color/from"
android:maxLines="1"
/>
<TextView
android:id="@+id/text_titulo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="titulo"
android:ellipsize="end"
android:textSize="@dimen/msg_text_primary"
android:textColor="@color/from"
android:maxLines="2"
android:layout_below="@id/add"
/>
</RelativeLayout>
说明:我删除了第一个TextView
上的对齐,因为alignParentStart
与alignParentLeft
相同,默认情况下,RelativeLayout
它应该与顶部对齐(也是为什么删除alignParentTop
)并离开,除非您使用RTL;已移除alignParentTop
,因为当您使用RelativeLayout
时,它会与第一个TextView
重叠,同时也会删除第二个layout_toRightOf
(layout_toEndOf
),因为这意味着它将从第一个结束的位置开始绘制文本,删除边距,因为您希望它一直向左移动并移除layout_alignParentLeft
和layout_toLeftOf
,如前所述。
现在,如果您不需要RelativeLayout
,我建议您使用垂直方向的LinearLayout
。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- insert your code here-->
</LinearLayout>
答案 1 :(得分:0)
听起来你想让你的第二个TextView
文字从第一个文字的左边开始,但如果有第二行的话,请将它包在下面。
无论您的父视图是TextView
,RelativeLayout
还是其他任何内容,都无法使用LinearLayout
开箱即用。
可能最好的解决方案是简单地使用单个TextView
并在将Java代码中的文本设置为TextView
之前将其组合在一起。换句话说,而不是写一些像:
String text1 = "first part";
String text2 = "of the text I want to put in my layout";
textView1.setText(text1);
textView2.setText(text2);
写下这个:
String text1 = "first part";
String text2 = "of the text I want to put in my layout";
textView.setText(text1 + " " + text2);
更好的是,请考虑使用String Resources而不是手动连接文字:
String text1 = "first part";
String text2 = "of the text I want to put in my layout";
textView.setText(getString(R.string.mystring, text1, text2));