一、概述
有一个输入框,输入框前有一段固定文本,固定文本不可删除,且颜色可设置,同时需要显示Hint文本。
控件默认支持长按弹出“全选、复制、删除”框。

二、代码
public class FixedEditText extends EditText implements View.OnFocusChangeListener {
private String fixText;
@ColorInt
private int fixColor = 0;//固定文本颜色
public FixedEditText(Context context) {
super(context);
init();
}
public FixedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void init() {
this.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
//this.setLongClickable(false);需要支持长按弹出全选、复制框
this.setOnFocusChangeListener(this);
}
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
int fixTextLength = fixText != null ? fixText.length() : 0;
// 若选中的光标位置在固定文本内,则重置光标位置到固定文本之后;
if (selStart < fixTextLength) {
selStart = selStart < fixText.length() ? fixText.length() : selStart;
selEnd = selStart;
if (getText().toString().length() !