package dpfs.view;在佈局文件中使用自己定義的BuildInListView取代系統的ListView就可以了。
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListView;
/**
* Created by xingzy on 2015/11/27.
*/
public class BuildInListView extends ListView {
public BuildInListView(Context context) {
super(context);
}
public BuildInListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BuildInListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
getParent().requestDisallowInterceptTouchEvent(true);
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return super.onInterceptTouchEvent(ev);
}
}
ScrollView和ListView滾動手勢衝突解決方法
開發做多了,總會遇到變態的需求,有時不得不使用ScrollView和ListView嵌套,但是ScrollView和ListView存在滑動衝突,比較蛋疼,
後來發現了一個比較簡單的方法,分享一下。
衝突的原因主要是ScroolView的 onInterceptTouchEvent(MotionEvent ev) 方法給攔截掉了,事件派發不到ListView中,所以造成ListView不能滾動。
解決方法:
重寫ListView,上代碼:
需要注意的是,onInterceptTouchEvent(MotionEvent ev)方法中getParent().requestDisallowInterceptTouchEvent(true)行代碼,getParent()得到的是當前ListView的父佈局,
如果不能正常滾動,可以嘗試getParent().getParent().requestDisallowInterceptTouchEvent(true);
轉載請註明出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.