美文网首页
Android解决ScrollView嵌套Spinner滑动冲突

Android解决ScrollView嵌套Spinner滑动冲突

作者: Amy木婉清 | 来源:发表于2022-05-05 22:31 被阅读0次

    今天遇到这样一个问题,在ScrollView中嵌套一个Spinner,滑动ScrollView的时候,触碰了Spinner的点击事件,造成冲突。解决方案是,新建一个Spinner类,继承androidx下的spinner,在Spinner中重写onTouchEvent方法解决冲突。然后在布局中引用自己新建的spinner类即可解决滑动冲突了。
    代码如下:

    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    
    public class MySpinner extends androidx.appcompat.widget.AppCompatSpinner {
    
        private Context context;
    
        public MySpinner(Context context) {
            super(context);
            this.context = context;
        }
    
        public MySpinner(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.context = context;
        }
    
        public MySpinner(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            this.context = context;
        }
    
        //重写onTouchEvent加以判断
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {
                this.performClick();
            } else if (event.getAction() == MotionEvent.ACTION_DOWN) {
                return true;
            }
            return super.onTouchEvent(event); 
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Android解决ScrollView嵌套Spinner滑动冲突

          本文链接:https://www.haomeiwen.com/subject/gvooyrtx.html