2012-04-23 3 views
0

Я пытаюсь установить позицию для просмотра при запуске активности.Как обновить позицию представления после метода view.layout()?

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

Я сделал это, но просмотр не обновил его положение. Кстати, у меня в журнале есть новая позиция.

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

Заранее спасибо.

+0

FWIW 'view.layout()' метод, кажется, работает при вызове из 'onTouch()', но не будет работать так, как вы его называете (из моего опыта, который привел меня на эту страницу) –

+0

, связанный с http://stackoverflow.com/questions/7217614/change-view-position –

ответ

2

вы можете получить параметры макета, используя getLayoutParams(), и поле изменения затем снова задает параметр макета.

  1. RelativeLayout.LayoutParams param = View.getLayoutParams();

  2. задать поля парам в соответствии с вашей новой позиции.

  3. View.setLayoutParams(param).

Если не решить вашу проблему, пожалуйста, ответьте мне, так что я могу попробовать что-то еще

+0

о, это слишком просто, спасибо в любом случае .. –

+0

Могу ли я сделать это для FrameLayout? –

+0

Я не пробовал, но должен, потому что все макеты реализуют Viewgroup.layoutparam, так что это должно быть ... –

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