`

activity添加ScrollView后或外部容器为RelativeLayout时onFling不起作用,无法滑动问题

 
阅读更多

http://trinea.iteye.com/blog/1054786中详细介绍过Activity中滑动效果的实现和原理

http://trinea.iteye.com/blog/1084707中介绍了当内容超过一屏时如何滚动Activity

 

但当在activity中添加ScrollView实现滚动activity的效果后或外部容器为RelativeLayout时,activity的滑动效果却无法生效了,原因是因为activity没有处理滑动效果,解决方法如下

实现dispatchTouchEvent函数,在其实现中调用mGestureDetector.onTouchEvent(ev),类似OnTouch。代码如下:

 

	private GestureDetector      mGestureDetector;
	
	@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        mGestureDetector.onTouchEvent(ev);
        // scroll.onTouchEvent(ev);
        return super.dispatchTouchEvent(ev);
    }

 其中mGestureDetector.onTouchEvent(ev)表示调用手势,即让GestureDetector去处理滑动

 

其他参考文章:

用户界面和事件处理 http://blog.csdn.net/iefreer/article/details/4586351

onInterceptTouchEvent和onTouchEvent调用时序 http://blog.csdn.net/ddna/article/details/5473293

onTouchEvent, onClick及onLongClick的调用机制 http://blog.csdn.net/ddna/article/details/5451722

前端事件处理 http://blog.csdn.net/G_rrrr/article/details/4861189

 

 

分享到:
评论
7 楼 Trinea 2012-10-30  
ouchwojiushil 写道
Trinea 写道
ouchwojiushil 写道
的确是能左右滑动了,但是scroolview里面的东西却不能滑动了~~~~~~~~~~~~~~求解决

你里面是listview?如果是的话,需要你自己重写listView的onmeasure函数

我的是scrollview里面有很多文字,能左右滑了切换页面了,,但是里面文字不能滚动的看了,不能上下滑了!

scrollview里面是linearlayout吗?
6 楼 ouchwojiushil 2012-10-30  
Trinea 写道
ouchwojiushil 写道
的确是能左右滑动了,但是scroolview里面的东西却不能滑动了~~~~~~~~~~~~~~求解决

你里面是listview?如果是的话,需要你自己重写listView的onmeasure函数

我的是scrollview里面有很多文字,能左右滑了切换页面了,,但是里面文字不能滚动的看了,不能上下滑了!
5 楼 Trinea 2012-10-29  
ouchwojiushil 写道
的确是能左右滑动了,但是scroolview里面的东西却不能滑动了~~~~~~~~~~~~~~求解决

你里面是listview?如果是的话,需要你自己重写listView的onmeasure函数
4 楼 ouchwojiushil 2012-10-29  
的确是能左右滑动了,但是scroolview里面的东西却不能滑动了~~~~~~~~~~~~~~求解决
3 楼 Trinea 2012-07-27  
李传智 写道
这种方法对Activity的局部View的onfling事件,是很显然不符合逻辑的,行不通!

是的,确实行不通,要使得只是局部View执行OnFling的话我能想到的是两种方法
一、修改Activity的OnFling函数,判断手势是不是只在在该View的可响应范围内,若是进行该View的相应操作,关于手势是不是在该View的响应范围内,可参考可以响应各个方向CompoundDrawables点击操作的TextView的实现原理中范围的判断

第二种方法有点复杂:
重新定义View,重写dispatchTouchEvent,最后在activity的dispatchTouchEvent总将事件先传给View
2 楼 李传智 2012-07-27  
这种方法对Activity的局部View的onfling事件,是很显然不符合逻辑的,行不通!
1 楼 lijun0349 2012-05-25  
高,查了好多资料,只有这种方法是最简单的,谢谢了

相关推荐

    ScrollView实现自定义RelativeLayout跟随手势上下滑动显示隐藏

    本示例中,我们将探讨如何实现一个特定的功能,即让一个自定义的RelativeLayout根据用户的手势上下滑动来显示或隐藏顶部标题栏。这在很多应用中都非常实用,比如模仿常见的抽屉式导航菜单效果。 首先,我们需要了解...

    Android ScrollView嵌套横向滑动控件时冲突问题

    前言:今天在开发的时候遇到这样的问题,最外层是ScrollView,...重写scrollview的onInterceptTouchEvent方法,当上下滑动时不处理即可。 代码如下 public void setOnScollChangedListener(OnScollChangedListener o

    实现ScrollView滑动时标题栏的隐藏效果(我自己写了例子)

    在Android开发中,实现ScrollView滑动时标题栏的隐藏效果是一项常见的需求,它可以为用户提供更加沉浸式的浏览体验。本文将详细讲解如何通过自定义布局和监听ScrollView的滚动事件来达到这个目的。 首先,我们需要...

    Android ScrollView自动滑动

    ScrollView是Android提供的一个可滚动的容器,可以包含一个直接子View,这个子View通常是一个LinearLayout或RelativeLayout等布局。当子View的内容高度超过ScrollView自身的高度时,用户可以通过上下滑动来查看未...

    Android,自定义ScrollView,实现过度滑动时回弹效果

    本主题关注的是如何自定义一个ScrollView,使其在用户过度滑动后产生回弹效果,这种效果通常被称为“橡皮筋”效果或“弹性”效果。这个效果在iOS中很常见,而在Android中则需要我们手动实现。接下来,我们将深入探讨...

    ScrollView嵌套ListVIew两者之间滑动问题

    然而,当在一个ScrollView中嵌套一个ListView时,就会出现一些特殊的问题,主要是关于滑动事件的处理,即所谓的“滑动冲突”。 首先,我们要理解滑动冲突的本质。当ScrollView和ListView同时存在于同一个布局中,...

    安卓 惯性 滑动 回弹 ScrollView

    在Android开发中,惯性滑动和回弹效果是用户界面设计中常见且重要的功能,尤其是在ScrollView这样的滚动视图组件中。惯性滑动是指当用户快速滑动屏幕后,内容会继续保持一段时间的滑动状态,模拟真实世界的物理惯性...

    ScrollView嵌套ScrollView滑动

    当一个ScrollView内嵌套另一个ScrollView时,可能会遇到一些滑动事件处理的问题。这种情况下,我们需要理解Android事件分发机制以及如何解决嵌套滚动冲突。 首先,我们要明白Android的事件分发机制,它主要包括三个...

    android ScrollView 上下左右任意滑动

    5. **滑动监听**:添加滑动监听器(OnTouchListener)可以捕捉用户的滑动行为,根据滑动方向计算滚动量,然后调用scrollBy()或scrollTo()方法来改变视图的位置。 6. **图片加载库**:由于大图片可能会导致内存问题...

    Android ScrollView向上滑动控件顶部悬浮效果实现

    2. **监听滚动事件**:在Activity或Fragment中找到ScrollView,并添加滚动监听器。可以使用OnScrollChangeListener接口或者自定义ViewGroup的onInterceptTouchEvent()方法来捕获滚动事件。 ```java scrollView....

    监听Scrollview滑动到最左边与最右边

    有时,我们可能需要监听ScrollView的滑动事件,尤其是当ScrollView滑动到最左边或最右边时,可能需要执行特定的操作,比如加载更多数据或者显示指示器。本篇文章将详细介绍如何实现这一功能。 首先,我们需要理解...

    安卓自定义控件左右滑动动态添加ImageView控件 ScrollView

    ScrollView是一个可滚动的视图容器,它可以包含一个或多个视图,当内容超出屏幕时,用户可以通过滚动查看所有内容。在我们的案例中,ScrollView作为基础容器,将承载一系列的ImageView。 接下来,我们将创建一个...

    scrollview的滑动监听底部以及横向滑动

    而在某些复杂场景下,我们还可能需要实现ScrollView的横向滑动,并在滑动到底部或横向滑动到边缘时触发相应的事件。这个"scrollview的滑动监听底部以及横向滑动"的示例(ScrollviewBottomDemo)就是为了演示如何实现...

    webview随scrollview一起滑动

    当一个WebView被放入ScrollView中时,可能会遇到一些问题,比如“webView与scrollView结合一起滑动时,webview显示为空白”。这个问题主要是由于滚动机制冲突导致的。下面我们将详细探讨这个问题的原因、解决方案...

    Unity实现ScrollView滑动吸附功能

    本文实例为大家分享了Unity实现ScrollView滑动吸附的具体代码,供大家参考,具体内容如下 最近在做一个展示模块的时候遇到了一个需要实现滑动窗口并且能固定吸附距离的需求,借助UGUI的ScrollView的API以及Dotween...

    ScrollView中嵌套ScrollView或ListView并且内部ScrollView或ListView也可滑动.

    ScrollView是Android中的一个垂直滚动容器,它可以包含一个或多个View,但通常建议只包含一个直接的子View,以避免布局混乱。如果需要嵌套多个视图,可以使用LinearLayout、RelativeLayout等布局管理器来包裹它们。 ...

    解决scrollView和listview滚动冲突,实现listview滑动到顶端和底部之后还能拖拽一定的距离,松开后返回

    本文将详细探讨如何解决这种冲突,并实现类似微信聊天页面中列表滑动到顶部或底部后还能继续拖拽一段距离,松手后自动回弹的效果。 首先,我们需要理解ScrollView和ListView的滚动机制。ScrollView是一个可以包含单...

    ScrollView滑动悬停效果

    10. **动画平滑过渡**:为了提供更好的用户体验,你还可以考虑在锚点视图移动时添加平滑的动画效果,比如使用`ObjectAnimator`或`ValueAnimator`。 通过以上步骤,你可以实现一个功能完善的ScrollView滑动悬停效果...

    Scrollview和gridview同时使用时滑动解决方法

    Scrollview和gridview同时使用的时候,Scrollview滑动gridview不滑动,Gridview滑动Scrollview不滑动!

    Android ScrollView+GridView左右滑动 自动定位滑动到某一项

    我们可以为按钮添加OnClickListener,当按钮被点击时,调用GridView的smoothScrollToPosition(int position)方法,这将平滑地滚动到指定的位置。这个方法提供了更流畅的用户体验,因为它会以动画的形式滚动到目标...

Global site tag (gtag.js) - Google Analytics