Android DevAndroid开发Android开发经验谈

一个Android长文本光标选中神器

2022-06-29  本文已影响0人  路人宇

Android长文本输入栏神器:通过拖动进度条移动光标或选中文本。

Preview

短按拖动:移动光标 长按拖动:选中文本

Feature

  1. 支持 短按移动长按选中短按选中长按移动仅移动光标仅选中文本 四种模式。

  2. 可选开启放大镜

  3. 可选开启“剪切/复制/粘贴/全选”菜单。


Usage

一行完成接入

Ui使用系统原生的 EditTextSeekBar,样式由使用方自行实现。
本库只负责控制逻辑。

TextSelectionController(editText).attachTo(seekBar)

更多可选配置

seekBar.max = 100 //进度条本身属性,max值越大,拖动进度条时光标移动越快
val controller = TextSelectionController(
    target = editText, 
    mode = Mode.ShortPressMoveAndLongPressSelection, //短按移动,长按选中
    enableWhen = EnableWhen.NotEmpty, //只有EditText非空才可用
    startActionModeAfterSelection = true, //选中后是否显示“剪切/复制”菜单
    enableMagnifier = true //是否开启放大镜,Android9+支持
)
controller.longPressDuration = 500L //手势多长时间算长按
controller.moveCursorDuration = 100L //当进度条拖到尽头后,每隔多长时间移动一次光标
controller.attachTo(seekBar)

源码地址:

https://github.com/YvesCheung/TextSelectionBar

上一篇 下一篇

猜你喜欢

热点阅读