首页 > 解决方案 > 相同TextView的不同字体大小和重力?

问题描述

我有一个 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

标签: androidfontstextviewgravity

解决方案


通过使用 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);

推荐阅读