ScrollView、NestedScrollView、RecyclerView等 判断是否可滑动

简单直接:判断是否可以竖向滑动,横向的暂时就不贴了

/**
 * 判断是否可以竖向滑动
 */
public boolean isCanScroll() {
        return scrollView.canScrollVertically(1) || scrollView.canScrollVertically(-1);
    }

看一下源码里的解释

/**
     * Check if this view can be scrolled vertically in a certain direction.
     *
     * @param direction Negative to check scrolling up, positive to check scrolling down.
     * @return true if this view can be scrolled in the specified direction, false otherwise.
     */
    public boolean canScrollVertically(int direction) {
        final int offset = computeVerticalScrollOffset();
        final int range = computeVerticalScrollRange() - computeVerticalScrollExtent();
        if (range == 0) return false;
        if (direction < 0) {
            return offset > 0;
        } else {
            return offset < range - 1;
        }
    }

根据注释可知:负数表示向上滚动,正数表示向下滚动;我们判断是否可以向上或向下即可得知是否可以滚动。

注意:view刚创建的时候(Activity的onCreate),子控件未绘制完成,此时,子控件与父控件的宽高都是0,不应该在这里判断是否可滑动,应该在view绘制完成后,才可以进行判断。
例如
1:view绘制完成的回调里
2:后续其他业务触发的判断操作等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值