1.如果edittext的id是R.id.content
2. content.setOnTouchListener(this)
3.添加以下两个方法。
/** * 设置editText在scrollview下仍然可以上下滑动 * 需要设置 content.setOnTouchListener(this) */ @SuppressLint("ClickableViewAccessibility") override fun onTouch(v: View?, event: MotionEvent?): Boolean { if (v == content && canVerticalScroll(content)) { v?.parent?.requestDisallowInterceptTouchEvent(true) if (event?.action == MotionEvent.ACTION_UP) { v?.parent?.requestDisallowInterceptTouchEvent(false) } } return false } /** * EditText竖直方向是否可以滚动 * @param editText 需要判断的EditText * @return true:可以滚动 false:不可以滚动 */ private fun canVerticalScroll(editText: EditText): Boolean { //滚动的距离 val scrollY = editText.scrollY //控件内容的总高度 val scrollRange = editText.layout.height //控件实际显示的高度 val scrollExtent = editText.height - editText.compoundPaddingTop - editText.compoundPaddingBottom //控件内容总高度与实际显示高度的差值 val scrollDifference = scrollRange - scrollExtent if (scrollDifference == 0) { return false } return (scrollY > 0) || (scrollY < scrollDifference - 1) }