Страницы

Поиск по вопросам

четверг, 26 декабря 2019 г.

Почему на маленьких экранах текст съезжает?

#android #xml


Сделал кнопку в ней текст , но когда запускаю на экранах входящих в диапазон Small,
например Nexsus_s, текст становится в две строки. На сколько я знаю размер текста не
спроста считается в sp  и должен сам масштабироваться. Ну выходит дело в том, что моя
кнопка позволяет тексту расползтись.  Если вместо 28  dp высоту установлю по содержимому,
то кнопка становится слишком большая.  

` `


Вот вся верстка целиком: 

    


    

    

    

        

        


    

    

        

        


    

    

        

            

            

            
        
    

    


 


Получается на маленьком экране вот так : https://gyazo.com/33a89a7d85c5b06f5affadc6a918fff1
А на больших: https://gyazo.com/1d24ac4d8f0d463f74b4f092aadfab24
    


Ответы

Ответ 1



Это происходит из за того, что текст целиком не входит в границы, указанные для виджета и система удаляет текст начиная от последнего пробела (зачем она так делает - вопрос филосовский). Есть несколько способов решить эту проблему (текст должен быть в одну строку, но на маленьких экранах он не входит): 1) Для маленьких экранов выводить другой текст (более короткая фраза, сокращения) Преимущества: заранее известный результат, нормальный размер текста для чтения Недостатки: явных нет Создаем папку res/values-hdpi/ (или с другим квалификатором, на плотности которого имеются проблемы с текстом) создаем там файл strings.xml где пишем альтернативный, более короткий текст по возрст. Для виджета указываем текст в виде ресурса: 2) Доверяем сокращение системе: Достоинства: то же, что и первый вариант Недостатки: неизвестно, как именно сократит система и будет ли это понятно в итоге 3) Уменьшаем размер текста для проблемного экрана Достоинста: сохраняется весь текст Недостатки: чтобы вместить весь текст, шрифт может быть очень маленький и плохо читаться Создаем папку res/values-hdpi/ создаем там файл dimens.xml где указываем размер текста 10sp Указываем значение для виджета: 4) Используем более компактную компоновку экрана, например в вашем случае можно использовать Spinner с выбором вариантов сортировки PS: Для первого и третьего вариантов так же обязательно должно быть указано значение по умолчанию, которое необходимо поместить в папку без квалификаторов (res/values/), файлы оформляются аналогично, значения в файлах соотвествуют нормальным условиям: текст - "по возрастанию", размер шрифта - 14sp, например.

Комментариев нет:

Отправить комментарий