Я создал приложение android и начал тестировать его на разных устройствах, но столкнулся с проблемой.
Мое приложение имеет множество размеров. xml для каждого квалификатора плотности, но пара телефонов, которые я использую (Huawei P20 pro и P9), оба используют размер xml из папки xxhdpi, но эти телефоны сильно различаются по физическому размеру / разрешению. Это означает, что на маленьком телефоне я получаю несколько перекрывающихся текстовых представлений, что не очень хорошо.
Текстовые строки определены в sp, а все поля - в dp. Сами текстовые представления сосредоточены на направляющих, которые определяются как процент от экрана.
Вот приблизительный набросок моего макета. Текстовые поля выделены красным и зеленым цветом, а тонкая синяя линия представляет собой рекомендации.
диаграмма
Есть ли какие-нибудь хитрые уловки, которые я могу использовать, чтобы обойти это? Единственное, что я могу придумать, это уменьшить размер текста и поля в размерах. xml, но тогда это ухудшает внешний вид на больших экранах (а это, вероятно, большинство).
В идеале я Мне понадобится какой-то лог c, который сообщает, если эти два представления перекрываются, уменьшите маржу до Xdp или измените этот процентный процент на X% et c.
EDIT Я использую макет ограничения, и в настоящее время нет ограничения между зеленым текстовым полем и нижним красным текстовым полем. Я могу ограничить нижнюю часть красного текстового представления до верха зеленого текстового представления; это устраняет перекрытие, но затем перетаскивает красный текст на большие экраны, что выглядит как мусор sh