Как я могу получить позицию представления в AbsoluteLayout? - PullRequest
1 голос
/ 08 января 2010

Может ли кто-нибудь дать мне совет, как получить позицию представления, которая является дочерью AbsoluteLayout? Я хочу сделать это для перетаскивания выбранного вида.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Чтобы узнать, где находится дочерний элемент, просто вызовите getLeft () и getTop (). Также не используйте AbsoluteLayout:)

2 голосов
/ 08 января 2010

AbsoluteLayout устарела, поэтому, вероятно, вам придется предоставить собственный макет перетаскивания, расширяя ViewGroup. В общем, верстка отвечает за размещение дочерних виджетов. Это делается в методе onLayout (), который вам придется переопределить. Это будет, вероятно, что-то вроде этого:


protected void onLayout(boolean changed, int l, int t, int r, int b) {
   final int count = getChildCount();
   for(int i=0; i<count; i++){
      final View child = getChildAt(i);
      if(GONE != child.getVisibility()){
        //position child
        child.layout(left, top, right, bottom);
      }
   }
}

Итак, реализуя свой собственный DragAndDropLayout - вы знаете положение своих детей. Но, может быть, есть более простое решение.
Привет! * * 1005

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...