Ответ 1
вы можете использовать RelativeLayouts, как описано здесь: Установить абсолютную позицию представления
Если AbsoluteLayout устарел, что я могу использовать вместо него?
Я сделал приложение, которое использует AbsoluteLayout, но оно не работает с различными разрешениями экрана. Я использую, потому что я могу установить положение X и Y кнопки. Могу ли я установить положение кнопки с помощью другого макета?
вы можете использовать RelativeLayouts, как описано здесь: Установить абсолютную позицию представления
Используйте RelativeLayout и установите левое и правое поля, например
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
lp.leftMargin = x;
lp.topMargin = y;
Рассмотрим использование FrameLayout. Если вы установите вес вашего ребенка на TOP|LEFT
, тогда вы можете использовать leftMargin
и topMargin
в качестве позиций. В качестве бонуса вы получаете несколько других полезных механизмов позиционирования, изменяя гравитацию.
Я предлагаю вам, ребята, если вы хотите иметь полный контроль над позициями ваших просмотров на экране, просто чтобы расширить ViewGroup и сделать свою собственную реализацию AbsoluteLayout. Самое простое решение - использовать один из существующих макетов и играть с полями, прокладками, гравитацией и т.д., Но контроль не будет таким мощным и может стоить некоторых проблем на экранах устройств.
Я бы просто использовал относительный макет и установил его на основе других элементов/краев экрана. В противном случае ваш макет будет отличаться на разных устройствах.