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

Интерфейс, диалоги, темы, стили, меню
Ответить
Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 26 дек 2015, 13:50

Привет.

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

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

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 28 дек 2015, 10:32

up куда копать?

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 28 дек 2015, 11:05

Нужно размеры записывать в dimens.xml. И создать разные варианты этого файла для телефона и планшета, в зависимости от размера экрана.

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 28 дек 2015, 20:28

блин но это муторно и вариантов 100500 как и размеров экрана
но всеравно спасибо за ответ

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 29 дек 2015, 08:13

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

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 29 дек 2015, 09:08

спасибо за наводку.
но все равно тестить надо обзавестись кучей эмуляторов с разным разрешением.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

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

Сообщение klblk » 29 дек 2015, 12:23

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

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

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

Сообщение math64 » 29 дек 2015, 12:54

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

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

Ответить