Как я могу динамически установить положение просмотра в Android? - PullRequest
91 голосов
/ 30 июня 2011

Как я могу изменить позицию просмотра с помощью кода?Как изменение своей позиции X, Y.Возможно ли это?

Ответы [ 11 ]

0 голосов
/ 23 августа 2018

Я обнаружил, что @Stefan Haustein очень близко подходит к моему опыту, но не уверен на 100%. Мое предложение:

  • setLeft() / setRight() / setBottom() / setTop() иногда не работает.
  • Если вы хотите временно установить позицию (например, для анимации, не затрагивающей иерархию) , когда представление было добавлено и показано , просто используйте setX() / setY() вместо. (Вы можете искать больше в разница setLeft() и setX())
  • И обратите внимание, что X, Y кажутся абсолютными, и это было поддержано AbsoluteLayout, который сейчас устарел. Таким образом, вы чувствуете, что X, Y, скорее всего, больше не поддерживается. И да, но только частично. Это означает, что если ваш вид добавлен, setX (), setY () будут отлично работать ; в противном случае , когда вы пытаетесь добавить представление в макет группы представлений (например, FrameLayout, LinearLayout, RelativeLayout), вы должны установить его LayoutParams с marginLeft , marginTop вместо этого (setX (), setY () в этом случае иногда не будут работать).
  • Установка позиции представления с помощью marginLeft и marginTop - это несинхронизированный процесс. Так что нужно немного времени для обновления иерархии . Если вы используете представление сразу после установки для него поля , вы можете получить неправильное значение .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...