1:首先自定义类重写ScrollView,系统运行时将会加载自己的重写的ScrollView:
public class MyScollview extends ScrollView {
public MyScollview(Context context, AttributeSet attrs) {
super(context, attrs);
// 添加了一个手势选择器
gestureDetector=new GestureDetector(new Yscroll() );
setFadingEdgeLength(0);
}
GestureDetector gestureDetector;
View.OnTouchListener onTouchListener;
public boolean onInterceptTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
// return super.onInterceptTouchEvent(ev);
return super.onInterceptTouchEvent(ev) && gestureDetector.onTouchEvent(ev);
}
class Yscroll extends SimpleOnGestureListener{
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
//控制手指滑动的距离
if (Math.abs(distanceY)>=Math.abs(distanceX)) {
return true;
}
return false;
}
}
2:在运用scrollview的xml中设置为自己的scrollView:标签即包名+类名:
<com.anjoyo.utils.MyScollview
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
.......... .....................
.......................................
..........................
</com.anjoyo.utils.MyScollview>
3:java 代码中的设定:
实例化自定义的scollview即可:
MyScollview myscollview;
扩展:
listview 与 viewpager 的焦点冲突也可运用此方法重写listview 即可;
注意viewpager的使用:
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />