代码之家  ›  专栏  ›  技术社区  ›  Ungureanu Liviu

在绝对布局中,如何获得视图的位置?

  •  1
  • Ungureanu Liviu  · 技术社区  · 15 年前

    有人能给我一个提示,告诉我怎样才能得到一个观点,什么是绝对布局的孩子?我想对所选视图进行拖放操作。

    谢谢您!

    2 回复  |  直到 9 年前
        1
  •  2
  •   Ramps    15 年前

    绝对布局已被弃用,因此您可能需要通过扩展视图组提供自己的拖放布局。总的来说,布局负责定位子部件。这是在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,您可以了解您孩子的位置。 但是,也许有更简单的解决方案。
    当做!

        2
  •  2
  •   Romain Guy    15 年前

    要知道子级在其父级中的位置,只需调用getLeft()和getTop()。另外,不要使用绝对布局:)