2013-08-04 2 views
8

Я строю проект Android, и я использую eclipse. Я просто не могу понять, как отключить раздражающее автоматическое выравнивание. Я просто хочу размещать кнопки везде, где захочу их поместить на интерфейсе графического интерфейса, но он просто держит , чтобы выровнять их друг к другу. Я попытался удалить эти строки выравнивания в xml-коде , но он все равно возвращает их, когда я перемещаю кнопки в интерфейсе графического интерфейса.Как отключить автоматическое выравнивание?

Есть ли способ отключить эту функцию?

Спасибо,

Alex

ответ

7

Есть ли способ отключить эту функцию?

Не думаю, что вы найдете удовлетворительное.

Вы действительно не объяснили, что такое «линии выравнивания», поэтому мы вынуждены угадывать. Я предполагаю, что «линии выравнивания» связаны с тем, что вы работаете с контейнером RelativeLayout. Цитирование the JavaDocs for RelativeLayout, RelativeLayout является:

раскладки где позиции детей могут быть описаны по отношению друг к другу или к родителю.

И, цитируя the guide for RelativeLayout:

RelativeLayout вид группы, которая отображает дочерние представления в относительных положениях. Позиция каждого вида может быть указана как относительно элементов брака (например, слева или ниже другого вида) или в положениях относительно родительской области RelativeLayout (например, выровненной до нижней, слева от центра).

Следовательно, существуют «линии выравнивания», которые заменяются конструктором графического интерфейса, поскольку они являются точкой, стоящей за контейнером RelativeLayout.

Конечно, вы можете сменить контейнер, с которым работаете, что-то еще.

Однако, в целом, Android не очень хорошо поддерживает вашу заявленную цель («Я просто хочу размещать кнопки, где бы я ни хотел их поместить в интерфейсе GUI»). Так же, как вы не делаете этого в веб-разработке, вы не делаете этого в разработке Android и по той же причине: вам нужно учитывать разные размеры (размер окна браузера для Интернета, размер экрана для Android). RelativeLayout, LinearLayout, TableLayout и GridLayout предназначены для того, чтобы вы указали виджеты, а также правила для позиционирования и калибровки, чтобы вы могли проектировать пользовательский интерфейс, который будет учитывать разницу между экраном размером 3 дюйма и 4,5 дюйма. Это сродни использованию HTML-тегов и правил CSS для определения контента и его позиционирования на веб-странице. Eclipse-drag-and-drop GUI-конструктор для Android может помочь вам в определении этих правил, поскольку вы, возможно, видите свои «линии выравнивания» для RelativeLayout.

+0

Большое спасибо за это объяснение.Я действительно новичок в разработке Android, как правило, я разрабатываю для iOS, где очень просто просто перетащить что угодно, где угодно. Я надеялся, что это возможно для Android. Я уже использую RelativeLayout, но я просто не могу понять это, когда я устанавливаю позицию одной кнопки по отношению к некоторым другим кнопкам, а затем, когда я пытаюсь поместить их, он перемещает первый, и я просто могу Решить это. Если вы знаете какой-либо учебник, в котором объясняется, как это сделать должным образом, это может мне очень помочь. –

+0

@AlexFish: «Обычно я разрабатываю для iOS, где очень просто просто перетащить что угодно, где бы вы ни хотели» - я не разработчик iOS, но я был бы ошеломлен и разочарован, если Apple HIG позволит вам «перетаскивать и бросайте что угодно, где хотите », даже если инструменты поддерживают его. «Если вы знаете какой-либо учебник, в котором объясняется, как это сделать, это может мне очень помочь» - вам нужно узнать, как работают контейнеры (например, «RelativeLayout», «LinearLayout») и как создать графический интерфейс с помощью этих контейнеров , Перетаскивание - это средство для достижения цели, а не самоцель. – CommonsWare

+0

@AlexFish: С точки зрения того, где научиться использовать контейнеры и т. Д., Онлайн-документация, начиная с http://developer.android.com/guide/topics/ui/overview.html, к сожалению, слаба, но это существует. Кроме того, ваши основные ресурсы - книги, блоги, StackOverflow и т. Д. – CommonsWare

0

Я думаю, что может быть в состоянии помочь. Если вы настроите свой макет на Relative Layout, вы можете перетащить любой из видов, где бы вы ни находились на графическом интерфейсе eclipse.

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