scrollview 使用setOnTouchListener后停止滑动:
解决办法:
一、
int touchY = 0;
private boolean isScoll ;
private void scrollView() {
behavorLayout.setOnTouchListener(new OnTouchListener() {
private int lastY = 0;
private int touchEventId = -9983761;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
View scroller = (View) msg.obj;
if (msg.what == touchEventId) {
if (lastY == scroller.getScrollY()) {
handleStop(scroller);
} else {
handler.sendMessageDelayed(handler.obtainMessage(
touchEventId, scroller), 1);
lastY = scroller.getScrollY();
}
}
}
};
@Override
public boolean onTouch(View v, MotionEvent event) {
isScoll = false;
int eventAction = event.getAction();
int y = (int) event.getRawY();
switch (eventAction) {
case MotionEvent.ACTION_UP:
if (Math.abs(touchY - y) < 20) {
} else {
handler.sendMessageDelayed(handler.obtainMessage(
touchEventId, v), 5);
}
break;
default:
break;
}
return false;
}
private void handleStop(Object view) {
this.finish(); //添加处理的代码
}
});
}
解决办法二、
public ScrollView scrollView;
private int scrollViewY;
scrollView = (ScrollView)findViewById(R.id.viewStatusDetailSV);
scrollView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
/** 滑动到顶部和底部做处理 **/
if (scrollView.getScrollY() == 0) {
Toast.makeText(context, "到达顶部了", Toast.LENGTH_SHORT).show();
} else if (scrollView.getScrollY() - scrollViewY < 2 && scrollView.getScrollY() >= scrollViewY) {
Toast.makeText(context, "到达底部了" + scrollView.getScrollY(), Toast.LENGTH_SHORT).show();
} else {
scrollViewY = scrollView.getScrollY();
}
//添加处理的代码
}
return false;
}
});
分享到:
相关推荐
5. **监听ScrollView的滑动事件**:通过监听ScrollView的滑动事件,手动调整WebView的位置,使其跟随ScrollView滑动。 ```swift scrollView.delegate = self // 实现UIScrollViewDelegate方法 func ...
前言:今天在开发的时候遇到这样的问题,最外层是ScrollView,里面嵌套了一个横向滑动的日历控件,在滑动日历的时候很卡顿。看到这种问题,自然而然的就会想到scrollview和其他可滑动控件的冲突问题。 解决思路 用户...
当一个ScrollView内嵌套另一个ScrollView时,可能会遇到一些滑动事件处理的问题。这种情况下,我们需要理解Android事件分发机制以及如何解决嵌套滚动冲突。 首先,我们要明白Android的事件分发机制,它主要包括三个...
在Android开发中,ScrollView和ListView的嵌套是一个常见的需求,但同时也伴随着许多技术挑战,主要问题在于两者都具有滚动功能,导致冲突,使得用户在滚动时可能会遇到不确定的行为。本篇将详细介绍如何解决这种...
总之,解决Android中的ListView与ScrollView滑动冲突问题,需要理解事件分发机制,以及掌握各种滚动控件的特性和API。通过合理的设计和编程,可以实现两者无缝协作,提供流畅的用户体验。在提供的压缩包文件...
总之,解决ScrollView与ListView滑动事件冲突的关键在于正确处理触摸事件的分发,确保每个组件都能在合适的时候接收并处理滑动事件。通过自定义组件或者利用现有组件的特性,我们可以构建出更加符合用户体验的界面。...
新版闪记ScrollView垂直滑动框架就解决了这个问题,它不仅提供了基础的滚动功能,还增强了性能和用户体验。 首先,这个框架强调的是“流畅”的滑动体验。这意味着它通过优化滚动算法,确保了在各种设备和屏幕尺寸上...
Scrollview和gridview同时使用的时候,Scrollview滑动gridview不滑动,Gridview滑动Scrollview不滑动!
通过以上步骤,我们可以在不牺牲ScrollView和ListView功能的前提下,实现类似微信聊天页面的流畅滚动体验。这个过程可能需要对Android的触摸事件处理和滚动机制有深入理解,但通过实践,开发者可以更好地控制和优化...
Super ScrollView插件则解决了这个问题,通过动态加载和卸载内容,实现了真正的无限滚动效果,只加载用户当前可视范围内的内容,提高了性能。 这个插件的主要特点包括: 1. **无限滚动**:通过智能地加载和卸载...
接下来,我们关注的是如何解决"与ScrollView的滑动事件冲突"问题。当侧滑菜单与ScrollView或NestedScrollView等可滚动视图一起使用时,可能会遇到滑动冲突。为了解决这个问题,我们需要在处理滑动事件时进行协调: ...
总之,处理ScrollView与ListView之间的滑动冲突是Android开发中的常见挑战,理解滑动事件的处理流程和利用提供的API或自定义逻辑,是解决问题的关键。通过以上所述的方法,开发者能够有效地解决这种冲突,实现流畅的...
然而,标准的ScrollView并不支持弹性滑动效果,即在滑动到边界时产生回弹的效果。这通常是通过第三方库或者自定义控件来实现的,比如我们这里提到的"ReboundScrollView"。 ReboundScrollView是一个仿照Facebook开源...
当需要在一个界面中同时展示大量数据和一些额外内容时,可能会将ListView嵌套在ScrollView中,但这种做法往往会导致滑动冲突的问题,即用户难以确定是想滚动整个ScrollView还是单独滑动ListView。本文将深入探讨这个...
总之,解决ScrollView嵌套问题需要对Android的触摸事件处理机制有深入的理解,同时掌握正确的处理方法。通过学习和实践这个demo,开发者可以更好地掌握在Android应用中实现复杂滚动布局的技巧。
这样的布局设计可以为用户提供丰富的交互体验,但同时也带来了一些技术挑战,主要是如何正确处理滑动冲突,即ScrollView和HorizontalListView之间的滑动同步问题。本文将深入探讨这个问题,并提供解决方案。 首先,...
ScrollView嵌套GridView不能滚动的问题解决方案 在 Android 开发中,我们经常会遇到 ScrollView 嵌套 GridView 的问题,导致页面不能滚动的问题。这个问题的出现是因为 ScrollView 和 GridView 都带有滚动条,当...
本文将详细讲解如何使ScrollView滑动到指定的位置,以便于实现更丰富的交互体验。首先,我们需要理解ScrollView的基本工作原理。 ScrollView本质上是一个可以包含单个直接子视图的垂直线性布局。它会根据需要自动...
通过上述介绍,我们可以看出解决ScrollView与ListView/GridView之间的滑动冲突问题主要涉及到两种方法:一是通过编程方式手动设置ListView/GridView的高度;二是使用支持嵌套滑动的`NestedScrollView`。这两种方法各...
标题提到的"局部滑动的scrollview"正是解决这一问题的一种方法。 首先,我们要理解如何在iOS中实现局部滑动。通常,当一个UIScrollView包含多个子视图,并且这些子视图的尺寸超出了父视图的显示范围,用户可以通过...