Я всегда читал, что единицы размера текста sp независим от экрана, но это не совсем так. Ниже я вставлю два скриншота экрана приветствия моего приложения:
Код: Выделить всё
Welcome screen (PHONE):

Код: Выделить всё
Welcome screen (TABLET):

Вы можете ясно видеть, как тексты не сохраняют пропорции/соотношения сторон.
Я проводил глубокое исследование по этому вопросу и нашел следующую очень интересную/классную библиотеку:
Intuit/ssp
Эта библиотека делает фантастическую работу, позволяя вам получить независимый от экрана блок размера текста. Вы можете увидеть это на моем следующем скриншоте:
Код: Выделить всё
Welcome Screen with ssp (TABLET):

Теперь вы можете видеть, что размеры текста намного лучше соответствуют телефону (если не точно).
До сих пор все было отлично, библиотека была фантастическим открытием, но теперь посмотрите мой экран входа:
Код: Выделить всё
Login (PHONE):

Код: Выделить всё
Login ssp in TextViews (TABLET):

Теперь на экране входа в планшет вы можете видеть, что если применить ssp к TextViews, все тексты будут выглядеть намного лучше в соответствии с пропорциями телефона, но EditTexts будут выглядеть маленькими.
Тогда я попробовал применить ssp ко всем TextViews и EditTexts:
Код: Выделить всё
Login ssp to all views (TABLET):

И вы видите, что опять же, это выглядит намного лучше.
В чем тогда проблема?
Я вполне убедился в этом последнем подходе, применив ssp ко всем размерам текста представлений, но из этого возникают две проблемы:
- Мне придется изменить все представления в моем приложении ( это не проблема, но у меня их довольно много).
- Соотношение сторон некоторых элементов до сих пор не сохраняется, например посмотрите как выглядит раскладка фона бирюзового цвета в телефоне гораздо более квадратный, чем на планшете (я также начинаю сомневаться, что dp, который я в основном использую для заполнения/поля, является независимой от экрана единицей измерения).
На странице GitHub четко сказано:
Код: Выделить всё
"Use it carefully! for example, in most cases you still need to design a different layout for tablets."
Что вы можете сказать, ребята?
Есть ли лучший способ справиться с этой проблемой?
Изменить: другой макет для планшетов.
Забыл упомянуть об этом ребята, но раньше у меня была другая раскладка для планшетов, что на мой взгляд очень плохая идея/вариант, потому что у вас есть две копии каждой раскладки, а поскольку любая модификация раскладки необходима, всегда нужно не забывать ее модифицировать. дважды, так что нет!
В конце концов я перешел только на один макет, пытаясь добиться наилучшего соответствия между обоими экранами, и именно это привело к созданию этого поста.
Редактирование 2:
После прочтения ценных комментариев, оставленных некоторыми из вас, ребята, я все еще думаю, что попытка добиться последовательного/красивого макета в обоих случаях , телефонах и планшетах, лучше всего иметь только один файл макета, главным образом с точки зрения удобства обслуживания, поэтому, принимая во внимание ваши комментарии, я постараюсь добиться этого.
Теперь, прочитав один комментарий о том, что кнопки на моем экране приветствия на планшете выглядят огромными, у меня возникла новая проблема.
Должен ли он иметь точный (или очень похожий) вид соотношение на планшете по сравнению с экраном телефона, даже с большими кнопками, считается лучшим подходом, чем экран с меньшими (возможно, менее грубыми) кнопками, но с большим количеством пустого (пустого) пространства или наоборот? Какой из двух подходов является более общим?
Подробнее здесь: https://stackoverflow.com/questions/784 ... t-ratio-be