Различный размер шрифта и гравитация для того же TextView? - PullRequest
0 голосов
/ 08 июня 2019

У меня есть textView, где мне нужно иметь два разных шрифта для одного текста, и мне нужно иметь левую и правую гравитацию для одного и того же текстового представления.

Java-код

holder.mMessageRowBinding.txtMyRow.setText(messageModel.getMessage()+"  "+CommonFragment.convertServerDateToUserTimeZone(messageModel.getUTCTimeZone(),
                    messageModel.getUTCTimeDate()));

XML-код:

<androidx.appcompat.widget.LinearLayoutCompat
            android:id="@+id/layoutThereRow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:layout_marginRight="50dp"
            android:background="@drawable/white_corner"
            android:orientation="vertical"
            android:visibility="@{safeUnbox(!messageThread.fromMe ? View.VISIBLE : View.GONE),default=gone}">

            <TextView
                android:id="@+id/txtThereHeaderName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingLeft="8dp"
                android:paddingTop="5dp"
                android:paddingRight="8dp"
                android:textAppearance="?android:textAppearanceSmallInverse"
                android:textColor="@color/halfBlackColor"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/txtThereRow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingHorizontal="8dp"
                android:paddingBottom="5dp"
                android:textColor="@color/halfBlackColor"
                android:textSize="12sp" />


        </androidx.appcompat.widget.LinearLayoutCompat>

Текущий результат: Привет, это StackOverflow 12:37 PM

1 Ответ

0 голосов
/ 14 июня 2019

Используя SpannableString, вы можете достичь этого

SpannableString string = new SpannableString(messageModel.getMessage()+" "+ 
CommonFragment.convertServerDateToUserTimeZone(messageModel.getUTCTimeZone(),
messageModel.getUTCTimeDate()));
string.setSpan(new RelativeSizeSpan(1.5f), 10, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
...