第二个textview的行删除

时间:2017-08-01 22:41:05

标签: java android textview line relative

我在同一行中有两个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>

The picture:

2 个答案:

答案 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上的对齐,因为alignParentStartalignParentLeft相同,默认情况下,RelativeLayout它应该与顶部对齐(也是为什么删除alignParentTop)并离开,除非您使用RTL;已移除alignParentTop,因为当您使用RelativeLayout时,它会与第一个TextView重叠,同时也会删除第二个layout_toRightOflayout_toEndOf),因为这意味着它将从第一个结束的位置开始绘制文本,删除边距,因为您希望它一直向左移动并移除layout_alignParentLeftlayout_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文字从第一个文字的左边开始,但如果有第二行的话,请将它包在下面。

无论您的父视图是TextViewRelativeLayout还是其他任何内容,都无法使用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));