android在布局中安排文本视图

时间:2013-03-05 06:57:05

标签: android android-layout

我需要布局中有3个文字。中心的textView颜色为红色,另外2个为黑色。所以我将它添加到relativelayout并将layout设置为textView2右侧的textView2和textView2右侧的textView3

this is what i have done

但是当第三个文本视图中的文本更大时,它应该是textview one。我得到了这个。

when the 3rd text is longer i get this

现在该怎么办才能得到这样的东西?

this is what i need

  <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/rel_lay"
        android:background="#DFDFDF"
        android:padding="2dip" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dip"
            android:text="TextView"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/textView1"
            android:text="TextView"
            android:textColor="#FF0000" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="false"
            android:layout_toRightOf="@+id/textView2"
            android:text="TextView when the third text is longer"
            android:textColor="#000000" />

    </RelativeLayout>

这是3 textView的相对布局。

2 个答案:

答案 0 :(得分:1)

使用Spanned类和一个TextView可能会更好。你试图实现它的方式,TextView#3必须在宽度上填充_parent并且能够知道TextView#2的结束位置。

答案 1 :(得分:1)

只需使用一个TextView并根据需要设置文字。您知道要为红色颜色设置哪个文本。所以你需要的是起始文本的索引结束文本

使用以下代码。

SpannableString spanText = new SpannableString("My Name is Chintan Rathod");
spanText.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 5 /*start index*/, 10 /*end index*/, 0);
textView.setText(spanText);

在这里,我已通过 5 10 ,但您可以传递自己的索引。但要确保 index 在范围内不会触发 IndexOutOfBoundException