解决EditText多行编辑时在ScrollView中无法滚动的问题

来源:互联网 发布:常见算法的时间复杂度 编辑:程序博客网 时间:2024/06/06 02:20

这是一件很郁闷的事,一个傻x给我找事,说我做的应用不好用,以为自己是傻逼产品经理吗?管的事真不少。各种问题,各种向老大反应,连服务器的端的问题都来找我,以为我是救世主啊,吐槽完了转入正题。

鉴于以前解决ListView,GridView以及ViewPager在ScrollView滚动问题的解决经验,我通过extends EditText来重写它的onTouchEvent方法来解决这个问题。

首先要显示多行编辑文本,先在.xml文件中配EditText的下面几个属性:

android:enabled="true"android:gravity="top"android:minLines="5"android:maxLines="10"android:scrollbars="vertical".

然后自定EditText:

public class MyEditText extends EditText {    public MyEditText(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    public MyEditText(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyEditText(Context context) {        super(context);    }    @Override    public boolean onTouchEvent(MotionEvent evt) {        switch (evt.getAction()) {        case MotionEvent.ACTION_MOVE:        // 通知其父控件,现在进行的是本控件的操作,不允许拦截                      getParent().requestDisallowInterceptTouchEvent(true);            break;        }        return super.onTouchEvent(evt);    }}

使用的时候只要把系统的EditText控件换成带完整包路径的MyEditText即可,例如:com.xxx.xxx.ui.view.edittext.MyEditText

大功告成,下班吃饭。

0 0
原创粉丝点击