【发布时间】:2019-03-27 09:48:18
【问题描述】:
我编写了一个库,其中包含从 EditText 扩展而来的自定义视图。
我希望当用户调用 setText() 时光标会停留在同一位置
但默认情况下 EditText setText() 将光标移动到开头
我该如何解决?我可以以某种方式覆盖 setText 方法(或其他方法,如 bringPointToView() 等)
编辑 1: 这不是this问题的重复
因为我想覆盖光标在 Edittext 处的标准行为。
并且不强制 lib 的用户调用 append() 或 setSelection()
编辑 2: 我的解决方案
@Override
public void setText(CharSequence text, BufferType type) {
super.setText(text, type);
if (getText() != null) {
Selection.setSelection(getText(), getText().length());
}
}
【问题讨论】:
-
在调用
setText()时也调用editText.setSelection(editText.getText().length()); -
正如我所说,它是一个图书馆。我不能强迫用户每次都调用 setSelection。我希望这将是我的 setText 的自定义 Edittext 中的默认行为。所以问题有点不同
-
问题有点不同,不能视为重复。
标签: android android-view