#android #material_design
Здраствуйте! Есть така проблема: нужно разместить 2 Floating Action Buttons c привязкой к правому нижнему углу с задаваемым margin между ними. Наглядный пример - Google Maps. Гугл привел меня к такой ссылке, где описано именно то, что мне нужно. Но делая по примеру, я обнаружил, что на своем телефоне(скрин 1, android 4.2) и на другом (скрин 2, android 5.0.2) есть разбежности. Думаю, здесь нужно баловаться с dimens.xml and styles.xml для каждой версии API(а различия между x<20 & x >= 20). Приведу код:P.S. Как видите, разница большая. Интересует как указать margin между кнопками по вертикали? Задавал их, но не работает(наверное через anchor).
Ответы
Ответ 1
Solution Взяв за основу ответ @shwarz-andrei, я начал экспериментировать со своей задачей. Итого, у меня получилось(хотя тестировал только на двух вышесказанных девайсах). И так, начнём. Для начала я обьявил константы в values/dimens.xml:16dp 16dp 16dp 32dp 4dp ... в values-v21/dimens.xml соотвествено:16dp 16dp 8dp 64dp 8dp Код разметки:Результат: всё заработало так, как мне нужно было, а именно - одинаковое отображение двух FAB на разных версиях Android(в моём случае - Android 4.2 и 5.0.1). Ответ 2
Я такую задачу решил, программно задав положение кнопки для версий 5+: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { fab.setLayoutParams(getFabLayoutParams()); } private RelativeLayout.LayoutParams getFabLayoutParams() { RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp.addRule(RelativeLayout.ABOVE,fab2) lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); lp.bottomMargin = 20; lp.rightMargin = 20; return lp; } По умолчанию - margin=0 (для версий меньше 5ой отступ выставляется сам).Ответ 3
CoordinatorLayout использует anchor, чем-то похоже на привязки как в RelativeLayout, попробуйте сделать кастомный разделитель, привязать (приякорить:) его к нижней fab, а второй fab2 уже к этому разделителю, вот такой пример:где высота divider и будет расстояние между двумя fab по вертикали.
Комментариев нет:
Отправить комментарий