Прокладка Android TextView між рядками


217

У мене TextView, який відображає довгий текст. Я хочу дати простір між рядками, як у CSS, з властивістю висоти рядка. Як я можу це зробити?

Відповіді:


408

Ви можете використовувати lineSpacingExtraі lineSpacingMultiplierу своєму XML-файлі.


13
lineSpacingMultiplier працює для мене зі значеннями float типу: android: lineSpacingMultiplier = "0,8"
Juan Saravia

7
Чи можете ви пояснити, як це працює? Звідки беруться ці вимірювання? Чи можете ви навести приклади стосовно шрифту, а також мови? Наприклад, міжрядковий інтервал вимірюється від базової лінії, але східноазіатська мова не має базової лінії. Де визначено інтервал між рядками за замовчуванням? Це в самому шрифті?
Крістофер Перрі

Наприклад: android: lineSpacingExtra = "2dp"
nibbana


73

Якщо ви хочете прокладки між текстом, спробуйте LineSpacingExtra="10dp"

<TextView
        android:layout_width="match_parent"
        android:layout_height="180dp"
        android:lineSpacingExtra="10dp"/>

30

Ця додаткова відповідь показує ефект зміни інтервалу між лініями.

введіть тут опис зображення

Можна встановити множник та / або додатковий інтервал за допомогою

textView.setLineSpacing(float add, float mult)

Або ви можете отримати значення за допомогою

int lineHeight = textView.getLineHeight();
float add = tvSampleText.getLineSpacingExtra();          // API 16+
float mult = tvSampleText.getLineSpacingMultiplier();    // API 16+

де формула

lineHeight = fontMetricsLineHeight * mult + add

Множник за замовчуванням є, 1а додатковий інтервал за замовчуванням - 0.



14

Додавання android:lineSpacingMultiplier="0.8"може зробити інтервал між рядками до 80%.


5

Рішення просте. Просто використовуйте ці два атрибути в вашому TextView, lineSpacingExtraіlineSpacingMultiplier

Наприклад,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lineSpacingMultiplier="1.5"
    android:lineSpacingExtra="5dp"/>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.