Android - Как добавить текстовое представление в конец другого текстового просмотра? - PullRequest
2 голосов
/ 27 апреля 2020

Я создаю приложение Галерея. Каждое изображение будет отображать заголовок вместе с именем человека, который загрузил изображение. Пример того, что я хочу, приведен ниже:

enter image description here

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

Итак, теперь я хочу Ночь темная, но в этой темноте тишина быть в отдельном textview и мохнатом мальчике в конце Ночью темно, но в этой тьме тишина * textview, даже если Ночь темна, но в этой тьме тишина - это одна или несколько строк.

Я использовал Flexbox Layout, но мне не удалось достичь того, чего я хочу.

Как добавить textview в конец другого textview? Спасибо !!!

Ответы [ 3 ]

1 голос
/ 27 апреля 2020

Вы можете использовать один TextView и установить для его текста String значение Spannable и сопоставить каждую часть текста с индексами. Я разделяю обе части дефисом; но вы можете изменить это как хотите.

TextView textView = findViewById(...);

String tag = "Night is dark, but this darkness has the silence - shaggy boy";
SpannableString spannableString = new SpannableString(tag);

spannableString.setSpan(new ForegroundColorSpan(Color.BLACK), 0, tag.indexOf("-"), 0);
spannableString.setSpan(new ForegroundColorSpan(Color.GRAY), tag.indexOf("-"), tag.length(), 0);
textView.setText(spannableString);

0 голосов
/ 27 апреля 2020

Вы можете использовать один TextView со строковыми заполнителями цитаты и автора и добавлять цвета с помощью тегов HTML.

строк. xml

<resources>

    <string name="tag">
        <![CDATA[
            <font color="#00000">%1$s</font> -
            <font color="#D3D3D3">%2$s</font>
        ]]>
    </string>


</resources>

Поведение:

String message = "Night is dark, but this darkness has the silence";
String name = "shaggy boy";

String formattedTag = String.format(getString(R.string.tag), message, name);

textview.setText(Html.fromHtml(formattedTag));
0 голосов
/ 27 апреля 2020

Может быть, вы могли бы просто получить текст автора TextView и добавить его в строку первого TextView?

...