为了账号安全,请及时绑定邮箱和手机立即绑定

ViewDragHelper自定义ViewGroup中shouldInterceptTouchEvent一直返回false是怎么回事?

ViewDragHelper自定义ViewGroup中shouldInterceptTouchEvent一直返回false是怎么回事?

最近再项目里使用ViewDragHelper自定义了一个ViewGroup,但是在自定义ViewGroup中的view却无法被拖动,ViewGroup中重写的onInterceptTouchEvent中调用的shouldInterceptTouchEvent也一直返回false,参照着很多博客和教程重新把ViewGroup写了很多次,没有成功过,把onInterceptTouchEvent返回值直接改为true布局中的view就可以拖动,请问怎么样才能正常使用ViewDragHelper呢?自定义ViewGroup: public class DragLayout extends LinearLayout {     private ViewDragHelper dragHelper;     public DragLayout(Context context) {         super(context);         init();     }     public DragLayout(Context context, @Nullable AttributeSet attrs) {         super(context, attrs);         init();     }     public DragLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {         super(context, attrs, defStyleAttr);         init();     }     public void init(){         dragHelper=ViewDragHelper.create(this,1.0f,new ViewDragCallback());     }     @Override     public boolean onInterceptTouchEvent(MotionEvent ev) {         Log.d("debuginfo","onInterceptTouchEvent返回值为:"+dragHelper.shouldInterceptTouchEvent(ev));         Log.d("debuginfo","onInterceptTouchEvent中的ev包含:"+ev.toString());         return true;     }     @Override     public boolean onTouchEvent(MotionEvent event) {         dragHelper.processTouchEvent(event);         return true;     }     class ViewDragCallback extends ViewDragHelper.Callback{         @Override         public boolean tryCaptureView(View child, int pointerId) {             Log.d("debuginfo","tryCaptureView中childView的ID为:"+child.getId());             Log.d("debuginfo","tryCaptureView中pointerId为:"+pointerId);             return true;         }         @Override         public int clampViewPositionHorizontal(View child, int left, int dx) {             Log.d("debuginfo","clampViewPositionHorizontal方法返回的left值为:"+left);             return left;         }         @Override         public int clampViewPositionVertical(View child, int top, int dy) {             return top;         }     } }布局文件:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".DragActivity">     <com.lfy.freefly.View.DragLayout         android:layout_width="match_parent"         android:layout_height="match_parent">         <ImageButton             android:id="@+id/controller"             android:layout_width="40dp"             android:layout_height="40dp"             android:background="@drawable/roundbutton"             android:src="@drawable/ic_home" />     </com.lfy.freefly.View.DragLayout> </RelativeLayout>有没有人能帮忙解决一下,感激不尽
查看完整描述
  • 2 回答
  • 0 关注
  • 1313 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号