解决EditText多行编辑时在ScrollView中无法滚动的问题
2016-05-10 11:19
465 查看
这是一件很郁闷的事,一个傻x给我找事,说我做的应用不好用,以为自己是傻逼产品经理吗?管的事真不少。各种问题,各种向老大反应,连服务器的端的问题都来找我,以为我是救世主啊,吐槽完了转入正题。
鉴于以前解决ListView,GridView以及ViewPager在ScrollView滚动问题的解决经验,我通过extends EditText来重写它的onTouchEvent方法来解决这个问题。
首先要显示多行编辑文本,先在.xml文件中配EditText的下面几个属性:
然后自定EditText:
使用的时候只要把系统的EditText控件换成带完整包路径的MyEditText即可,例如:com.xxx.xxx.ui.view.edittext.MyEditText
大功告成,下班吃饭。
鉴于以前解决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
大功告成,下班吃饭。
相关文章推荐
- Android自定义控件:进度条的四种实现方式(Progress Wheel的解析)(源码 + Demo)
- mac安装protobuf
- 求一个红包算法
- (一)问候Hibernate4
- js学习笔记2---HTML属性操作
- c#记事本
- 如何完成循环小数转成分数?
- disconf 分布式配置
- red5源码分析---7
- 转 Linux C 网络编程——多线程的聊天室实现(服务器端)
- 【bzoj3791】作业 dp
- ORA-01795: 列表中的最大表达式数为1000的解决方法详解
- 虚拟化系列之二--创建虚拟机
- Cache 判断Ip几分钟内攻击次数
- CSDN博客
- H5横向三栏布局
- 2016-5-2至2016-5-8
- javascript学习——使用javascript
- h3c开启了dhcp-snooping后客户端获取不到ip地址的解决方案
- java 集合框架-ArrayList存储不重复的自定义对象