美文网首页
View的可见性检查,View的滑动几种方式

View的可见性检查,View的滑动几种方式

作者: RexHuang | 来源:发表于2020-06-29 18:17 被阅读0次

    View的可见性检查

    1. getLeft()、getTop()、getRight()、getBottom()
    2. getX()、getY()、getRawX()、getRawY()
    3. getLocationOnScreen()
    4. getLocationInWindow()
    5. getGlobalVisibleRect()
    6. getLocalVisibleRect()
    方式一:getLeft()/getTop()/getRight()/getBottom()

    获取当前View相对于父View的坐标

    view.getLeft()
    view.getTop()
    view.getRight()
    view.getBottom()
    
    方式二:getX()/getY()/getRawX()/getRawY()

    获取点击事件相对直接控件的发生坐标或相对屏幕的坐标

    MotionEvent event
    
    event.getX()
    event.getY()
    
    event.getRawX()
    event.getRawY()
    
    方式三:getLocationOnScreen()

    获取当前View相对于屏幕的坐标

    int[] location = new int[2];
    view.getLocationOnScreen(location);
    // view距离屏幕左边的距离
    int x = location[0];
    // view距离屏幕顶边的距离
    int y = location[1];
    
    // 在view.post(Runnable)里获取,即等布局变化后
    
    方式四:getLocationInWindow()

    获取当前View相对于所在Window的坐标

    int[] location = new int[2];
    view.getLocationInWindow(location);
    // view距离window左边的距离
    int x = location[0];
    // view距离window顶边的距离
    int y = location[1];
    
    // 在onWindowFocusChanged()里获取,即等window窗口发生变化后
    
    方式五:getGlobalVisibleRect()

    获取View可见部分相对于屏幕的坐标

    Rect rect = new Rect();
    view.getGlobalVisibleRect(rect);
    int left = rect.getLeft();
    int top = rect.getTop();
    int right = rect.getRight();
    int bottom = rect.getBottom();
    
    方式六:getLocalVisibleRect()

    获取View可见部分相对于自身View左上角的坐标

    Rect rect = new Rect();
    view.getLoacalVisibleRect(rect);
    int left = rect.getLeft();
    int top = rect.getTop();
    int right = rect.getRight();
    int bottom = rect.getBottom();
    

    注意:getGlobalVisibleRect与getLocalVisibleRect在View完全不可见的情况下返回的Rect实例的坐标为相对屏幕原点的坐标,且当View处在屏幕上方时,top和bottom为负值。

    [站外图片上传中...(image-f0af2b-1593425845677)]
    例子中的tv10和tv9完全不可见,所以其返回的Rect坐标是相对于屏幕原点的坐标。

    View的滑动

    方式一:scrollTo和scrollBy
    方式二:Animation
    方式三:利用MarginLayoutParams的Margin属性
    方式四:Scroller类
    方式五:利用View的绘制流程layout方法
    方式六:offsetLeftAndRight和offsetTopAndBottom

    相关文章

      网友评论

          本文标题:View的可见性检查,View的滑动几种方式

          本文链接:https://www.haomeiwen.com/subject/budafktx.html