ScrollView与EditText滑动冲突解决办法
2015-06-27 12:16
330 查看
在ScrollView中有EditText,当EditText部分内容被隐藏的时候,需要滑动EditText,让隐藏的内容显示出来,但是这个时候EditText滑动事件会和ScrollView的滑动事件冲突。为了解决这个问题可以自定义EditText
1.自定义EditText
2.主界面关键代码
1.自定义EditText
public class ScrollviewEditText : EditText { private ScrollView parentScrollView; public ScrollView GetParentScrollView() { return parentScrollView; } public void SetParentScrollView(ScrollView parent_scrollview) { this.parentScrollView = parent_scrollview; } public ScrollviewEditText(Context context, IAttributeSet attrs, int defStyle) :base(context,attrs,defStyle){ } public ScrollviewEditText(Context context, IAttributeSet attrs):base(context,attrs) { } public ScrollviewEditText(Context context) :base(context){ } public override bool OnTouchEvent (MotionEvent e) { if (parentScrollView == null) { return base.OnTouchEvent(e); } else { if (e.Action == MotionEventActions.Down) { // 将父scrollview的滚动事件拦截 SetParentScrollAble(false); //将父scrollview的滚动事件拦截 return base.OnTouchEvent(e); } else if (e.Action == MotionEventActions.Up) { // 把滚动事件恢复给父Scrollview SetParentScrollAble(true); //把滚动事件恢复给父Scrollview----- } else if (e.Action == MotionEventActions.Move) { } } return base.OnTouchEvent (e); } //是否把滚动事件交给父scrollview private void SetParentScrollAble(bool flag) { parentScrollView.RequestDisallowInterceptTouchEvent (!flag); } }
2.主界面关键代码
private ScrollviewEditText et_content; private ScrollView scrollview; et_content = FindViewById<ScrollviewEditText> (Resource.Id.et_content); scrollview = FindViewById<ScrollView> (Resource.Id.scrollview); et_content.SetParentScrollView (scrollview);
相关文章推荐
- linux命令eval的用法
- org.hibernate.LazyInitializationException could not initialize proxy-no Session的解决
- MyEclipse10注释字体变小的原因
- iOS应用架构浅谈
- Android内存泄漏分析实战
- Linux_5.2_线程互斥
- 关于对2取模的误区
- Unity编辑器 设置 Pivot模式和Center模式
- Exchange 服务器 跨森林 邮件迁移案例分享 (二)
- Objective-C 快速入门--基础(二)
- Optimal Flexible Architecture(最优灵活架构)
- 黑马程序员--Java学习日记之GUI(图形化用户界面编程)
- ubuntu 原生迅雷
- Hadoop知识汇总
- target,currentTarget,delegateTarget,srcElement
- java并发编程之Semaphore
- Objective-C 快速入门--基础(二)
- [SQL] SQL学习笔记之基础操作
- 【Hadoop】6、Hadoop安装之报错处理
- Java-对象数组排序