Android EditText 去除编辑功能,保留点击移到光标效果。去除 屏蔽 双击全选
2017-05-26 17:57
513 查看
网上找了很多资料,基本可以实现希望的效果,但还是不能解决双击后,光标跳转
最后还是拦截了OnTouchListener,但是光标又不能跳转,在onTouch中使用了【editText.getOffsetForPosition】取得位置后,调用【editText.setSelection()】
实现了光标移到。
XML中的设置
实现这种程度后期发现,拖动edit框内的文字无法scroll滚动,因为设定了OnTouchListener,因此只能自己在OnTouchListener调用响应方法实现文字滚动
刚接触android开发,前辈有更好的办法请明示,3Q
希望能给有这方法需求的朋友提供帮助
最后还是拦截了OnTouchListener,但是光标又不能跳转,在onTouch中使用了【editText.getOffsetForPosition】取得位置后,调用【editText.setSelection()】
实现了光标移到。
。。。 editText.setOnTouchListener(new onDoubleClick()); 。。。。 } class onDoubleClick implements View.OnTouchListener{ int count = 0; int firClick = 0; int secClick = 0; @Override public boolean onTouch(View v, MotionEvent event) { final float x = event.getX(); final float y = event.getY(); if(MotionEvent.ACTION_DOWN == event.getAction()){ int temp = editText.getOffsetForPosition(x,y); editText.setSelection(temp); } return true; }
XML中的设置
<EditText android:id="@+id/textNum" android:layout_x="160px" android:layout_y="40px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="48px" android:textStyle="normal" android:textColor="#FFFFFFFF" android:background="#00FFFFFF" android:text="132121212212" android:maxLength="99" android:focusable="true" android:clickable="true" android:textIsSelectable="false" android:focusableInTouchMode="true" android:longClickable="false" android:contextClickable="false" android:linksClickable="false" android:nestedScrollingEnabled="false" android:hapticFeedbackEnabled="false" android:cursorVisible="true" android:textSelectHandle="@drawable/edit_select_handle" android:selectAllOnFocus="false" />
edit_select_handle.xml - 这是在网上找到的资料
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <size android:width="0dp" /> <!-- 实际不显示,该图片的作用仅是占位,因直接设置android:textSelectHandle="@null"运行时出错,当然根据具体情况,可设置成一张图片png等 --> </shape>
实现这种程度后期发现,拖动edit框内的文字无法scroll滚动,因为设定了OnTouchListener,因此只能自己在OnTouchListener调用响应方法实现文字滚动
class onDoubleClick implements View.OnTouchListener{ int firClick = 0; int secClick = 0; float dx; float dy; @Override public boolean onTouch(View v, MotionEvent event) { final float x = event.getX(); final float y = event.getY(); Log.i(TAG,"onTouch:"+event.getAction()); if(MotionEvent.ACTION_DOWN == event.getAction()){ Log.i(TAG,"dx:"+dx); Log.i(TAG,"x:"+x); dx = x; dy = y; } if (MotionEvent.ACTION_UP == event.getAction()){ editText.requestFocus(); int temp = editText.getOffsetForPosition(x,y); editText.setSelection(temp); } if(MotionEvent.ACTION_MOVE == event.getAction()){ editText.scrollBy((int) (dx - x ),0); ViewGroup.LayoutParams layoutParams = v.getLayoutParams(); dx = x; dy = y; editText.requestLayout(); } return true; } }
刚接触android开发,前辈有更好的办法请明示,3Q
希望能给有这方法需求的朋友提供帮助
相关文章推荐
- Android 中使用EditText 点击全选再次点击取消全选功能
- Android EditText 取消复制粘贴功能、取消横向全屏编辑功能
- android EditText长按屏蔽ActionMode context菜单但保留选择工具功能
- 【android】监听编辑EditText时点击软键盘事件 + 隐藏软键盘 + keycode汇总
- 【Android】EditText实现搜索功能,把键盘回车键改为搜索;EditText隐藏光标
- Android EditText 取消复制粘贴功能、取消横向全屏编辑功能
- android安卓屏蔽禁用系统输入法,自定义软键盘,解决EditText光标问题demo
- Android EditText 的使用及值得注意的点——如如何屏蔽EditText的复制、粘贴功能
- Android--解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题
- Android edittext的光标修改颜色,去除下划线
- android 之EditText长按屏蔽ActionMode context菜单但保留选择工具功能
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
- android EditText长按屏蔽ActionMode context菜单但保留选择工具功能
- Android EditText屏蔽粘贴功能
- 我的Android进阶之旅------>Android如何去除GridView的按下或点击选中后的背景效果
- android EditText长按屏蔽ActionMode context菜单但保留选择工具功能
- android EditText长按屏蔽ActionMode context菜单但保留选择工具功能
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
- Android ListView用EditText实现搜索功能效果
- Android EditText 点击时不弹出键盘但显示光标