#android #xml #android-layout
#Android #xml #android-макет
Вопрос:
Есть ли способ в Android увеличить поля, чтобы заполнить экраны? Проблема в том, что макеты, которые я создаю для устройств Nexus, выглядят великолепно, но затем при предварительном просмотре на обычном устройстве без нижних элементов управления возникает уродливое пространство между остальной частью макета и нижней частью. Я бы хотел, чтобы поля между элементами увеличивались при наличии свободного места.
Ниже добавлены изображения. Извините за уродливое сокращение некоторых полей, я не могу показать их в настоящее время, чтобы выполнить контракт. Обратите внимание, что «расширенный поиск» находится далеко от низа, я бы хотел, чтобы вертикальные поля между всеми элементами увеличились, и убедитесь, что этого не произойдет.
Как я могу достичь этого в относительном макете?
Комментарии:
1. Пожалуйста, ознакомьтесь с официальным руководством Android: developer.android.com/guide/practices/screens_support.html Вы можете достичь своей цели, поместив
dimens.xml
в папку res, соответствующую размеру экрана.2. @IzzyLeung просматривал это много раз, проблема в том, что модули DP не масштабируются должным образом между устройствами nexus и обычными устройствами. Хотя поля явно должны увеличиваться, поскольку стало больше места, этого не происходит. Кроме того, нет способа создать отдельный макет для устройств nexus (или устройств с виртуальными элементами управления в целом), поскольку плотность экрана такая же, как у обычного устройства с тем же экраном…
3. Ну, я думаю, это за пределами моих знаний. Извините за это.
4. Как насчет использования относительного макета в конце и размещения расширенного поиска внутри него и установки alignParentBottom в true?
5. @JamsheedKamarudeen Спасибо за ваше предложение, к сожалению, я уже пробовал это, и в другом месте было бы просто много места
Ответ №1:
Попробуйте использовать LinearLayout и пустые представления между каждым из элементов. просто пустой вид:
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@android:color/transparent" />
Комментарии:
1. Я не знаю, как заархивировать это в RelativeLayout.
2. Спасибо, но я попросил относительную компоновку, так как иногда в одной строке находится 2 элемента, а использование линейной компоновки внутри другого обходится дорого
3. две вложенные линейные компоновки не так дороги, и вы можете легко это сделать. не беспокойтесь о вложенности в этом случае.
4. Ну что ж, тогда спасибо. Странно, что Google, который продвигает использование virtual home amp; back, не предоставляет решения и для относительных макетов. Ответ принят