Увеличение полей на больших экранах

#android #xml #android-layout

#Android #xml #android-макет

Вопрос:

Есть ли способ в Android увеличить поля, чтобы заполнить экраны? Проблема в том, что макеты, которые я создаю для устройств Nexus, выглядят великолепно, но затем при предварительном просмотре на обычном устройстве без нижних элементов управления возникает уродливое пространство между остальной частью макета и нижней частью. Я бы хотел, чтобы поля между элементами увеличивались при наличии свободного места.

Ниже добавлены изображения. Извините за уродливое сокращение некоторых полей, я не могу показать их в настоящее время, чтобы выполнить контракт. Обратите внимание, что «расширенный поиск» находится далеко от низа, я бы хотел, чтобы вертикальные поля между всеми элементами увеличились, и убедитесь, что этого не произойдет.

Как я могу достичь этого в относительном макете?

Nexus 4

Обычный 4.7 quot;

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

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, не предоставляет решения и для относительных макетов. Ответ принят