【发布时间】:2019-08-05 20:32:09
【问题描述】:
在this 答案中,我发布了我的解决方案,用于禁用EditText 的默认copy, paste, select all and clipboard 行为,包括禁用句柄选择光标:
三个步骤包括 a) 一个简短的 sn-p 代码(多次发布在 Stackoverflow 中); b) 空图像和 c) 自定义和全局 EditText 样式
如果一个人只是踏出a,它会继续显示handle select。如果单击手柄选择,则会出现带有Clipboard + Select All 的弹出窗口,因此应该选择与手柄选择相关联的空图像。
但是,有一个功能我根本无法处理:
double clickAndroid 默认行为会在几分之一秒内选择带有粉红色背景的点击单词,如下所示:
我尝试了 StackOverflow 中提出的许多解决方案,包括更改 onClick(由 setOnClickListener 插入)事件以在不到 1 秒的时间内禁用 TextEdit 控件,使用计时器或帖子事件。
我也尝试在onTouch 事件中处理光标。
我什至尝试在GestureDetector.SimpleOnGestureListener() 中编写一个空的double click 处理
没有成功。没有线索。
更新
为了帮助澄清,我的问题要求的特征:
1) 无法显示任何额外的键来开始输入
2) 如果适用,我需要让用户触摸文本的任何点,指示他们的“插入”位置。通常他在文本的末尾键入并且没有光标。在这种情况下,我禁用它。
3) 我需要让用户按顺序触摸文本的 2 个点,以进行选择,并带有标记的背景。这不完全是double click,它是两个舒适的单独点击。我不喜欢移动设备上的 double click。
-/-
简而言之,我需要使用光标,但不是以 Android 提供的标准方式。因此,我需要禁用默认的 Android 行为,但不会丢失光标和选择一段文本的能力。
-/-
有一个选项可以制作一个闪烁的人造光标,但我想这很费力,因为光标不会完全占据字符位置。
更新 2
当我在EditText 全局样式中使用时
<item name="android:focusableInTouchMode">false</item>
双击变为非活动状态,但我无法再显示光标,也无法通过软件进行选择。
【问题讨论】: