您的位置:首页 > 其它

Scrollview和listview 与VIewpager冲突问题

2017-07-05 10:48 274 查看
Scrollview和listview 与VIewpager冲突问题

package com.dreamlive.widget.view;
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;/**
* * * 解决ScrollView嵌套ViewPager出现的滑动冲突问题 */public class PagerScrollView extends ScrollView {private boolean canScroll;private GestureDetector mGestureDetector;View.OnTouchListener mGestureListener;@SuppressWarnings("deprecation")public PagerScrollView(Context
context, AttributeSet attrs) {super(context, attrs);mGestureDetector = new GestureDetector(new YScrollDetector());canScroll = true;}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_UP)canScroll = true;return
super.onInterceptTouchEvent(ev)&& mGestureDetector.onTouchEvent(ev);}class YScrollDetector extends SimpleOnGestureListener {@Overridepublic boolean onScroll(MotionEvent e1, MotionEvent e2,float distanceX, float distanceY) {if (canScroll)if (Math.abs(distanceY)
>= Math.abs(distanceX))canScroll = true;elsecanScroll = false;return canScroll;}}}

package com.dreamlive.widget.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

public class UnSrollableListView extends ListView {
public UnSrollableListView(Context context) {
super(context);
}

public UnSrollableListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public UnSrollableListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: