您的位置:首页 > 其它

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

2016-05-10 11:19 465 查看
这是一件很郁闷的事,一个傻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

大功告成,下班吃饭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: