2017-02-16 33 views
0

Допустим, у меня есть два textviews, название и подробная информация: toEndOf заголовок (та же строка), и хотя заголовок - это одна строка, быть множителем, мой вопрос в том, как я могу настроить детали textview, чтобы при запуске новой строки вместо выравнивания ее с предыдущей строкой textview выровняли ее с заголовком textview, что создавало ощущение абзаца.Android two Textviews, выровняйте их как один абзац

Пожалуйста, смотрите это скриншот, чтобы понять, что я пытаюсь выполнить (название это жирный текст, подробно это остальное):

Желаемая: enter image description here

То, что я так далеко:

enter image description here

Единственное решение, которое я могу думать о f использует один textview для обоих, и форматирует текст с помощью HTML, но что, если мне нужен больший размер текста для заголовка?

Спасибо!

+0

вы хотите получить и выход, как ваши больших изображения с помощью одного TextView? это * мой собственный пример *, если вам это нравится, используйте его> http://stackoverflow.com/a/42081151/5188159 –

ответ

0

Вы можете использовать SpannableText

Это сделает работу!

<TextView 
    .. 
    android:id="@+id/text_view" 
    /> 

...

TextView text=(TextView)findViewById(R.id.text_view); 
String head = "Seat (s):"; 
String body = " The baby name means the meaning of the nam"; 
setTextWithSpan(text,head+body,head, body,new android.text.style.StyleSpan(android.graphics.Typeface.BOLD)); 

Пользовательского метод

public void setTextWithSpan(TextView textView, String text, String spanTextBold,String secondPartOfText,StyleSpan style) { 

    SpannableStringBuilder sb = new SpannableStringBuilder(text); 

    int start = text.indexOf(spanTextBold); 
    int end = start + spanTextBold.length(); 
    sb.setSpan(style, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    //sb.setSpan(new ForegroundColorSpan(Color.BLUE), start, end ,0); // if you need a color 

    int startTwo = text.indexOf(secondPartOfText); 
    int endTwo = startTwo + secondPartOfText.length(); 
    // sb.setSpan(new StyleSpan(Typeface.ITALIC),startTwo,endTwo , 0); 
    sb.setSpan(new RelativeSizeSpan(0.8f), startTwo, endTwo, 0); 

    textView.setText(sb); 
} 

enter image description here

+0

@who down vote this? причина пожалуйста? если что-то не так, я могу их исправить –

0

Да, как вы уже упоминали, я также вижу один TextView с разными размерами строк и цветами для текста внутри.

Для достижения этой цели необходимо использовать SpannableString - Docs link

Также Проверьте answer для деталей

0

Используйте SpannableText для вашего вопроса, чтобы отделить два TextViews.