TextRendering в TextView и EditText

У меня есть простой макет, как это:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/txtContent2"
        android:layout_width="300dp"
        android:layout_height="100dp"
        android:background="#fed9f4"
        android:textSize="22sp" />
    <View
        android:layout_width="match_parent"
        android:layout_height="10dp"/>

    <TextView
        android:id="@+id/txtBelow"
        android:layout_width="300dp"
        android:layout_height="100dp"
        android:background="#fed9f4"
        android:textSize="22sp"/>
</LinearLayout>

TextView и EditText. Когда я устанавливаю один и тот же текст в них обоих, кажется, что каждый из них отображает текст по-своему. как ниже: Вид сверху - это EditText, а внизу - TextView

Я использую StaticLayout для измерения текста и определения границ текста в каждой строке, и мне нужно установить текст в TextView (чтобы пользователь не мог редактировать или выбирать его).

Но кажется, что расчеты границ текста в StaticLayout совпадают с EditText, а не с TextView.

StaticLayout layout = new StaticLayout(content, txtContent.getPaint(),
            txtContent.getWidth(),
            Layout.Alignment.ALIGN_NORMAL, 1, lineSpace, false);

Мой вопрос заключается в том, почему рендеринг текста отличается в TextView и EditText, и как я могу измерить текст с помощью StaticLayout и установить текст в TextView, чтобы смещение начала и конца каждой строки точно совпадало с результатом, который пользователь видит после setText

1 ответ

Попробуйте установить одинаковые breakStrategy и https://developer.android.com/reference/android/widget/TextView.html введите здесь описание ссылки для обоих представлений, поскольку они могут различаться для значений по умолчанию EditText и TextView.,

Другие вопросы по тегам