统一自动调整多个TextView

时间:2018-01-07 06:51:24

标签: android textview kotlin autosize

在我的活动中,我有三个自动调整的文本视图(不使用支持库):

<TextView
            android:id="@+id/textView_date"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:autoSizeTextType="uniform"
            android:gravity="center"
            android:maxLines="1"
            android:text="1, Jan"
            app:layout_constraintBottom_toTopOf="@id/guideline_horizontal_date_time"
            app:layout_constraintEnd_toStartOf="@id/textView_time"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

<TextClock
            android:id="@+id/textView_time"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:autoSizeTextType="uniform"
            android:gravity="center"
            android:text="12:00 AM"
            app:layout_constraintBottom_toTopOf="@id/guideline_horizontal_date_time"
            app:layout_constraintEnd_toStartOf="@id/textView_day"
            app:layout_constraintStart_toEndOf="@id/textView_date"
            app:layout_constraintTop_toTopOf="parent" />

<TextView
            android:id="@+id/textView_day"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:autoSizeTextType="uniform"
            android:gravity="center"
            android:maxLines="1"
            android:text="Monday"
            app:layout_constraintBottom_toTopOf="@id/guideline_horizontal_date_time"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@id/textView_time"
            app:layout_constraintTop_toTopOf="parent" />

当我运行时,我得到以下结果 Uneven text size

如何使日期和日期文本视图具有统一的大小? 我不想设置一个相同的android:autoSizeMaxTextSize属性来做到这一点。

我尝试过以下逻辑(Kotlin)

if(view_date.textSize>view_day.textSize)
            view_date.textSize = view_day.textSize
else
            view_day.textSize=view_date.textSize

但是它不起作用,文本大小不会改变。

1 个答案:

答案 0 :(得分:0)

自动调整大小的目的是让Android框架决定应该选择哪种文本大小,具体取决于屏幕大小。

在你的情况下,我会改变实施方式。您可以使用一个TextView而不是一个接一个地链接,并使用Formatter方法填充日期/时间/星期几。这样,文本将始终具有相同的大小。