读书人

解决ViewFlipper与ScrollView滑动响应

发布时间: 2012-08-07 14:54:49 作者: rapoo

解决ViewFlipper与ScrollView滑动响应事件拦截的问题
最近在做一个简单的展示界面时,遇到了一个比较棘手的问题。由于要展示多项内容,所以使用ViewFlipper作为水平滑动容器;而每项内容中由于许多文本较长,因此需要使用ScrollView作为垂直滑动容器。基本的界面布局大致如下:

外部文件common_list_view.xml:



内部文件common_info_view.xml:


由于ViewFlipper在外,ScrollView在内,因此一般的做法是定义一个手势响应类来处理响应事件,并将响应事件的处理交给内层的ScrollView。大致代码如下:
import android.content.Context;import android.util.AttributeSet;import android.view.GestureDetector;import android.view.MotionEvent;import android.widget.ScrollView; public class FriendlyScrollView extends ScrollView { GestureDetector gestureDetector;     public FriendlyScrollView(Context context) {super(context);// TODO Auto-generated constructor stub} public FriendlyScrollView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub} public FriendlyScrollView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub} public void setGestureDetector(GestureDetector gestureDetector) {this.gestureDetector = gestureDetector;} @Overridepublic boolean onTouchEvent(MotionEvent event) {    super.onTouchEvent(event);    return gestureDetector.onTouchEvent(event);} @Overridepublic boolean dispatchTouchEvent(MotionEvent ev){    gestureDetector.onTouchEvent(ev);    super.dispatchTouchEvent(ev);    return true;}  }

然后将common_info_view.xml和程序中的ScrollView改成FriendlyScrollView,终于解决了这个问题。

http://disanji.net/2011/02/19/solve-viewflipper-scrollview-flip-problem/ 1 楼 416849838 2012-06-01 有源码没

读书人网 >移动开发

热点推荐