ScrollView中使用EditText,并解决滑动冲突

本文探讨如何在ScrollView中使用EditText并解决滑动冲突问题。当EditText内容过多时,防止ScrollView滑动,同时确保在EditText外滑动时界面可正常滚动。通过判断EditText的行数来拦截事件,避免不必要滑动。文中提供了相应的代码实现。
摘要由CSDN通过智能技术生成

描述:
在一个ScrollView中,有一个固定了高度的 EditText,EditText 可以输入很多文字,当文字过多时,需要滑动文字查看。此时,不能让 ScrollView 滑动。同理,当触摸到 EditText 以外的地方(ScrollView区域内)时,滑动界面的时候, EditText 内的文字,不能滑动。此外,如果EditText 中文字行数少,不用滑动,就可以看到全文的时候,在EditText中滑动,也是 界面进行滑动

解决思路:判断EditText 中文字的行数,是否超过了能显示的最大行数。如果超过了,就拦截事件,不让父控件消费事件。

onInterceptTouchEvent(拦截事件),只在 ViewGroup中,才会有

代码:
MyEditTextLinearLayout

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.EditText;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;

public class MyEditTextLinearLayout extends LinearLayout {

    private static final String TAG = "ScrollviewEdit"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值