我需要在布局中有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