Android的ScrollView滑动获得角度实例:
package com.cm.android.pad.view.itemView;
import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ScrollView;
public class TestScroll extends ScrollView {
private GestureDetector mGestureDetector;
private static double SCROLL_ANGLE = 90;
public TestScroll(Context context, AttributeSet attrs) {
super(context, attrs);
mGestureDetector = new GestureDetector(new YScrollDetecotr());
setFadingEdgeLength(0);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev)
&& mGestureDetector.onTouchEvent(ev);
}
class YScrollDetecotr extends SimpleOnGestureListener {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// if(distanceY != 0 && distanceX != 0){
//
// }
// if(Math.abs(distanceY) >= Math.abs(distanceX)){
// System.out.println("distanceX = " + distanceX + " , distanceY = "
// + distanceY);
// return true;
// }
// return false;
double angle = Math.atan2(Math.abs(distanceY), Math.abs(distanceX));
// System.out.println("angle-->" + (180 * angle) / Math.PI);
if ((180 * angle) / Math.PI < 180) {
return false;
}
return false;
}
}
}
分享到:
相关推荐
用户的左右滑动操作被最外层的scrollView控件处理掉了,所以只要让scrollview对左右滑动事件不监听,让其子控件处理左右滑动事件 。重写scrollview的onInterceptTouchEvent方法,当上下滑动时不处理即可。 代码如下 ...
在Android开发中,ListView是用于显示大量数据列表的常用组件,而ScrollView则是一个可以垂直滚动的视图容器,常用于包含多个子视图。当在一个ScrollView内嵌套一个ListView时,由于两者都具有滑动功能,可能会导致...
解决滑动冲突通常需要对Android的触摸事件处理机制有深入理解,包括如何处理MotionEvent的ACTION_DOWN、ACTION_MOVE和ACTION_UP等,以及如何在自定义View中正确处理这些事件。 总的来说,这个技术解决方案旨在提高...
总之,解决Android中的ListView与ScrollView滑动冲突问题,需要理解事件分发机制,以及掌握各种滚动控件的特性和API。通过合理的设计和编程,可以实现两者无缝协作,提供流畅的用户体验。在提供的压缩包文件...
在Android开发中,ScrollView和GridView是两种常用的布局组件。ScrollView是一个可以包含单个子视图并允许用户滚动查看其内容的容器,而GridView则是一种可以显示多行多列数据的控件,通常用于创建网格视图。在这个...
下面我们将详细探讨如何在Android中自定义ScrollView并添加滑动监听事件。 首先,我们要了解ScrollView的基本结构。ScrollView继承自FrameLayout,它可以包含一个直接子视图,并确保这个子视图完全可见,如果内容太...
一个简单的demo,包含了onTouch,onLongClick,onClick调用日志,顺便解决ScrollView事件冲突,详情看博文:http://blog.csdn.net/msl0903/article/details/24205973
当ViewPager中的Fragment包含可滚动的内容(如ScrollView或ListView)时,可能会出现上下滑动与ViewPager的左右滑动冲突。为了解决这个问题,我们需要自定义一个ViewPager,覆盖其`onInterceptTouchEvent...
当需要在一个界面中同时展示大量数据和一些额外内容时,可能会将ListView嵌套在ScrollView中,但这种做法往往会导致滑动冲突的问题,即用户难以确定是想滚动整个ScrollView还是单独滑动ListView。本文将深入探讨这个...
在Android开发中,ScrollView是一个非常常用的布局控件,它允许用户滚动查看屏幕无法完全显示的所有内容。当需要在布局中包含多个视图或者一个高度超过屏幕的视图时,我们通常会使用ScrollView。然而,当ScrollView...
在Android开发过程中,我们经常会遇到ScrollView与ListView或GridView组合使用时出现的滑动冲突问题。这类问题通常表现为:当ScrollView内部包含一个ListView或GridView时,用户滑动屏幕时可能无法正常滚动列表中的...
滑动冲突的根源在于Android的触摸事件分发机制。当一个ViewGroup接收到触摸事件后,它会尝试将事件传递给其子View。如果子View消费了事件,那么事件就不会再传递给其他子View或其父View。在嵌套布局中,如果所有子...
可以通过重写ScrollView的onInterceptTouchEvent和onTouchEvent方法,根据当前滑动的方向和速度判断应该由哪个ScrollView处理滑动事件。一般情况下,如果滑动方向与内层ScrollView的滚动方向一致,则让内层...
在Android开发中,ScrollView和ListView的嵌套是一个常见的需求,但同时也伴随着许多技术挑战,主要问题在于两者都具有滚动功能,导致冲突,使得用户在滚动时可能会遇到不确定的行为。本篇将详细介绍如何解决这种...
在Android开发中,ScrollView和ListView是两种常用的布局组件,它们分别用于实现可滚动的大视图和展示多行可滚动的数据列表。然而,在实际应用中,当这两种组件同时存在于一个界面时,滚动冲突的问题就会出现,导致...
在Android开发中,ListView和ScrollView都是非常常见的视图组件。ListView用于显示大量的数据列表,而ScrollView则可以包裹任意数量的子视图,实现整个布局的滚动。然而,当ListView被嵌套在ScrollView中时,就会...
在Android开发中,ListView和ScrollView是两种常用的布局组件。ListView主要用于显示大量的数据列表,而ScrollView则用于实现可滚动的视图。然而,在实际应用中,当ListView被嵌套在ScrollView或者与ScrollView并存...
在Android开发中,ScrollView和ListView都是非常常见的视图组件。ScrollView是一个可以包含单个直接子视图并允许用户滚动查看其内容的布局。ListView则是一个显示大量数据并支持动态加载和用户交互的视图,通常用于...