android在布局中安排文本视图

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

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

 

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

  <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的相对布局.

最佳答案 只需使用一个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,但你可以传递自己的索引.但要确保索引在范围内不会触发IndexOutOfBoundException

点赞