问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何判断ScrollView是否滚动

发布网友 发布时间:2022-05-23 16:08

我来回答

1个回答

热心网友 时间:2023-05-18 11:40

有的。但这是个protected方法,只能被其自身或者子类调用。你可以继承ScrollView,重载该方法,然后就可以在这个方法里面判断是否发生了滚动了。我曾经有类似需要,采取一种方式是自己定义一个listener,然后在方法里面去调用listener。但重载的是onOverScrolled,你可以参考如下代码自己改写一下即可:[mw_shl_code=java,true]
public class CustomScrollView extends ScrollView {

private OnOverScrolledListener mOnOverScrolledListener = null;
/**
* @param context
*/
public CustomScrollView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

/**
* @param context
* @param attrs
*/
public CustomScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

/**
* @param context
* @param attrs
* @param defStyle
*/
public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}

/* (non-Javadoc)
* @see android.widget.ScrollView#arrowScroll(int)
*/
@Override
public boolean arrowScroll(int arg0) {
// TODO Auto-generated method stub
return super.arrowScroll(arg0);
}

/* (non-Javadoc)
* @see android.widget.ScrollView#computeScroll()
*/
@Override
public void computeScroll() {
// TODO Auto-generated method stub
super.computeScroll();
}

/**
* @return the mOnOverScrolledListener
*/
public OnOverScrolledListener getOnOverScrolledListener() {
return mOnOverScrolledListener;
}

/**
* @param mOnOverScrolledListener the mOnOverScrolledListener to set
*/
public void setOnOverScrolledListener(OnOverScrolledListener mOnOverScrolledListener) {
this.mOnOverScrolledListener = mOnOverScrolledListener;
}

public interface OnOverScrolledListener{
public abstract void onOverScrolled(View view, int scrollX, int scrollY, boolean clampedX, boolean clampedY);
}

/* (non-Javadoc)
* @see android.widget.ScrollView#onOverScrolled(int, int, boolean, boolean)
*/
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
// TODO Auto-generated method stub
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if(mOnOverScrolledListener != null) {
mOnOverScrolledListener.onOverScrolled(this, scrollX, scrollY, clampedX, clampedY);
}
Log.i("CustomScrollView", "===DBG:onOverScrolled");
}

}
[/mw_shl_code]
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么电脑上的word界面变小为什么WORD里面的页面变的很小怎么设置回来... AHA拯救心脏救命术(Basic Life Support,BLS) 基础生命的基本顺序 机械制图第一视角与第三视角的区别 明日之后野外感染者据点都在什么地方 感染就聚集点位置分享 明日之后 明日之后哪些地图有强力感染者? 《明日之后》野外感染者据点一览 明日之后野外感染者据点去哪找 妙洁提醒你注意:保鲜膜有些不能加热 有些不能包肉 C盘里文件的修改日期是不是就代表那天我用过电脑,我是上午用的,可文件... android:verscrollmode="never"这条代码说的什么 怎么判断scrollview还在滚动 如何禁止android webview 向下拖拽 android 怎样监听scrollview滑动到底部 如何禁止手机浏览器下拉 overscrollby 什么时候调用 如果我发现违法网站或含有违法内容的论坛版面该到哪里去投诉呢? 男朋友一个月不接电话不回微信 QQ论坛发帖,怎么一直提示内容违规呀,无论发什么 重庆论坛发帖提示非法内容是怎么回事 请督察检查我的帖子是否违规 bbS违规检查是什么意思 我想知道昀言和旻言什么意思 古典昀是什么意思 贷款申请需要多久 谁知道自己怎么检测排卵? U盘的使用? 休闲鞋鞋面是合成革好,还是超纤加纳米好? 超细纤维鞋面是什么材质关于超细纤维鞋面是什么材质 求青岛市城阳区新建小区名单 价格好说!!! 如何控制ListView的第一条记录固定不动 ipad滚动条为什么失效? 如何判断在scrollView中列表项是否处于界面的显示状态 自定义view为什么不能直接使用View类的mContext变量? 洗牙大概分哪些过程呢?里面的喷砂到底是做什么用的呢? 灰色的卫衣要搭配什么色的衬衫,我是男的 灰色卫衣能够搭配黑色衬衫吗??求解! 灰色的圆领卫衣里面搭配什么颜色的衬衫好看呀,只能搭白色吗,女生哦 浅灰色卫衣里面配什么衬衫好看 灰色圆领卫衣里面应该套一件什么颜色的衬衫在里面打底 无法使用髙德地图导航是什么原因? 灰色卫衣配什么样的衬衫,什么颜色的? 手机地图导航无法精确定位是什么情况? 男生灰色连帽卫衣外面可以穿红色格子休闲衬衫吗 灰色圆领卫衣搭配衬衫 浅灰色卫衣要搭配什么颜色的格子衬衫和小脚裤? 安卓手机打电话进来一直是通话中是什么原因 情人坝灯光秀时间2022 无法显示导航地图 百度地图导航无法定位导航是怎么回事?小米2,导航一直提示卫星定位中,雷达一颗都没有搜到,一直停在原