Android - выравнивание шрифтов разных размеров на одной базовой линии - PullRequest
0 голосов
/ 29 января 2019

У меня есть 2 смежных TextView с, каждая из которых имеет разную строку с разным размером шрифта.Я хочу, чтобы текст имел одинаковую базовую линию в каждом TextView.Как я могу это сделать?

Вот мой макет:

   <LinearLayout
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:background="@color/colorAccentLight"
            android:textSize="18sp"
            style="@style/Base.TextAppearance.AppCompat.Medium"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="bottom"
            android:textAlignment="gravity"
            android:text="30"
        />
        <TextView
            android:background="@color/colorAccent"
            android:text="hello"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="bottom"
            android:textAlignment="gravity"
        />

    </LinearLayout>

Вот текущее поведение, обратите внимание, как 2 TextView s имеют разные базовые линии ("привет" нижечем 30), потому что шрифт для каждого TextView имеет разный размер.

enter image description here

1 Ответ

0 голосов
/ 29 января 2019

Измените высоту обоих TextView элементов на wrap_content.По умолчанию горизонтальная LinearLayout автоматически выровняет базовую линию дочерних элементов TextView.

Если вы в настоящее время используете match_parent для высоты, чтобы иметь полноцветный фоновый цвет, вам придетсядумать о другом способе сделать это.Возможно, вы могли бы использовать цвет фона для LinearLayout, а затем указать только цвет фона для большего TextView;это даст тот же эффект, что и сегодня.

...