Android中解决EditText与NestedScrollView垂直滑动冲突
16lz
2021-01-24
首先实现View.OnTouchListener
对Editext设置监听
et_baseInfo.setOnTouchListener(this)
override fun onTouch(v: View?, event: MotionEvent?): Boolean { if (v?.id == R.id.et_baseAuditInfo || v?.id == R.id.et_suggestion){ if (canVerticalScall(v as EditText)){ v.parent.requestDisallowInterceptTouchEvent(true)//告诉父控件,自己处理事件 if (event?.action == MotionEvent.ACTION_UP){ v.parent?.requestDisallowInterceptTouchEvent(false)//告诉父控件,可以处理事件了 } } } return false }
判断EditText是否可以滑动
fun canVerticalScall(editText: EditText): Boolean{ //滚动的距离 val scrollY = editText.scrollY //控件内容总高度 val scrollRange = editText.layout.height //控件实际显示的高度 val scrollExtent = editText.height - editText.compoundPaddingTop - editText.compoundPaddingEnd //控件内容总高度,与实际高度的差值 val scrollDeference = scrollRange - scrollExtent if (scrollDeference == 0){ return false } return (scrollY > 0 || (scrollY < scrollDeference - 1))}
更多相关文章
- android实现音乐播放器(进度条)
- android之各种布局控件和对话框
- 《Android开发技术周报》笔记
- 《转》完美解决微信video视频隐藏控件和内联播放问题
- Android笔记---点击事件的四种写法
- Android:自定义控件和使用方法
- Android(安卓)之 自定义控件用法介绍
- Android(安卓)的永久登陆 与注销登陆
- 安卓布局详解