2010-06-07 8 views
0

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

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

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

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

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

Благодаря

ответ

2

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

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

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

0

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

Проверьте this вне.

Смежные вопросы