Страница 1 из 1

Меню на разных экранах.

Добавлено: 26 дек 2015, 13:50
Night_Scream
Привет.

Как сделать одинакоаое отображение меню на разных экранах?
Я так понимаю указывать в px ничего нельзя, только dp.

Меню будет представлять из себя 5 button в вертикальном layout.
Проблема в том что на телефоне меню нормально, а на планшете оно сверху, т.к. я делал отступы margin в 30dp.

Re: Меню на разных экранах.

Добавлено: 28 дек 2015, 10:32
Night_Scream
up куда копать?

Re: Меню на разных экранах.

Добавлено: 28 дек 2015, 11:05
math64
Нужно размеры записывать в dimens.xml. И создать разные варианты этого файла для телефона и планшета, в зависимости от размера экрана.

Re: Меню на разных экранах.

Добавлено: 28 дек 2015, 20:28
Night_Scream
блин но это муторно и вариантов 100500 как и размеров экрана
но всеравно спасибо за ответ

Re: Меню на разных экранах.

Добавлено: 29 дек 2015, 08:13
math64
Все 100500 вариантов не нужно - Андроид каким-то образом подбирает наиболее подходящий (но по какому алгоритму?).
Можно также в коде узнать размер экрана и вручную установить размеры после загрузки лейаута.

Re: Меню на разных экранах.

Добавлено: 29 дек 2015, 09:08
Night_Scream
спасибо за наводку.
но все равно тестить надо обзавестись кучей эмуляторов с разным разрешением.

Re: Меню на разных экранах.

Добавлено: 29 дек 2015, 12:23
klblk
Можно думать об альтернативах. Не совсем понимаю а каком меню речь, но почему бы его не сделать например по центру, вместо отступов сверху?

Re: Меню на разных экранах.

Добавлено: 29 дек 2015, 12:54
math64
чтобы сделать по центру, нужно использовать атрибут android:layout_gravity="center_horizontal|center_vertical"
если нужно не точно по центру, сверху и снизу (и/или соответственно, слева и справа), добавить невидимые view с атрибутом android:layout_weight="1" (пустое пространство распределяется соответственно весу). используется LinearLayout c android:orientation="vertical"

Ещё можно использовать PopupWindow. Но координаты, где выводить меню, придётся вычислять вручную.