Как изменить положение объекта в макете Android? - PullRequest
0 голосов
/ 07 июня 2010

В настоящее время я работаю над очень простым приложением, и я намеревался изменить визуальный аспект в зависимости от размера экрана. Приложение просто имеет 6 кнопок, как это:

http://www.freeimagehosting.net/uploads/e1efb4c4d0.jpg http://www.freeimagehosting.net/uploads/e1efb4c4d0.jpg

Я использую AbsoluteLayout и меняю x и y кнопок с помощью методов offsetLeftAndRight и offsetTopAndBottom. Я не меняю расположение кнопок в файле xml, поэтому все они начинаются в одном месте.

Однако, если я использую эти методы внутри onClickMethod, они иногда появляются там, где я хочу, иногда нет (не могу понять почему), но если я использую их в методе onCreate, ничего не происходит.

Может ли кто-нибудь указать мне правильное направление?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 июня 2010

Во-первых, вы не должны использовать AbsoluteLayout.Определение вещей по их точному расположению в пикселях - это повод для неприятностей, когда вы имеете дело с экранами разных размеров.Было бы гораздо лучше использовать такие вещи, как LinearLayout, TableLayout или RelativeLayout с правильными настройками гравитации, чтобы сделать его центром.

Во-вторых, почему ваши методы перемещения элементов представления ничего не делают в вашем onCreate:Вероятно, это происходит потому, что ваши методы вызываются до того, как кнопки читают свой размер из файла XML.Другими словами, ваши изменения переопределяются вашими настройками XML еще до того, как они отображаются.

Наконец, мы не можем много сказать о том, почему ваши методы их перемещения не работают должным образом, если вы не покажете намкод.(Добавьте его к своему вопросу, а не как ответ на этот ответ.)

0 голосов
/ 07 июня 2010

Вы пытаетесь создать панель инструментов.

Проверьте это .

...