Единственное, что я вижу, это то, что все в этом RelativeLayout будет смещено вниз. И вам нужно будет вычислить следующий дочерний отступ не сверху относительного размещения, а снизу последнего дочернего элемента, чтобы быть точным.

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

НоAbsoluteLayout не рекомендуется. Что я должен использовать вместо этого?

События могут перекрываться, и я думаю, что было бы очень глупо пытаться использовать не абсолютный макет для достижения того, чего я хочу.

Может быть, я должен использоватьRelativeLayout с полем слева и полем top на каждом из дочерних узлов. Кажется странным делать это таким образом и, возможно, не так эффективно. Это лучший способ или есть альтернатива?

Ответы на вопрос(2)

Решение Вопроса
CommonsWare предложил написать свой собственный менеджер макетов, и Кристиан отметил, что это звучит проще, чем есть.Яхель предложил SurfaceView / OpenGl и нарисуйте все, что я хочу.

что вы можете воссоздать абсолютное позиционирование, добавив свои дочерние представления вRelativeLayout и установитьRelativeLayout.LayoutParams иметь только значения по умолчанию, за исключением ширины, высоты, marginTop и marginLeft. Верхний и левый поля будут похожи на верхний и левый вAbsoluteLayout, Также поддерживаются отрицательные поля.

Убедитесь, что вы учитываете плотность экрана, изменения ширины и ориентации, а также все другие предостережения об абсолютном позиционировании, которые применялись кAbsoluteLayout

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

Напишите свой собственный менеджер макета, который реализует нужные вам правила.

 Cristian20 янв. 2011 г., 17:13
Звучит проще, чем есть ... но это лучшее, что он может сделать: P

Ваш ответ на вопрос