2013-03-05 3 views
4

Мне нужно иметь 3 текста в макете. textView в центре красного цвета, а остальные 2 - черные. поэтому я добавил его к relativelayout и установите layout в textView2 справа от textView1 и textView3 справа от textView2андроид, упорядочивающий текстовый вид в макете

this is what i have done

Но когда текст в представлении третьего текста больше, он должен прийти TextView один , Я понял это.

when the 3rd text is longer i get this

теперь, что я должен сделать, чтобы получить Somthing как это?

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.

+0

попробовать с весом – Richa

+0

сообщения ур коды XML !!!! –

+0

отправить свой код xml – Pragnani

ответ

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); 

Здесь я прошел и , но вы можете передать свои собственные индексы. Но убедитесь, что индекса в пределах диапазона, который не будет срабатывать IndexOutOfBoundException

1

Возможно, вам повезло с использованием классов Spanned и одного TextView. То, как вы пытаетесь его реализовать, TextView # 3 должно заполнить_размер по ширине и сможет узнать, где заканчивается TextView # 2.

Смежные вопросы