我使用前缀this example帮助创建了编辑文本。通过扩展EditText使用自定义类将android后缀设置为EditText
同样的方式我试图实现后缀来编辑文本。我已经成功地将后缀添加到了光标的右侧,但它不会显示在编辑文本的最后。当我键入它时,键入的文本覆盖在后缀上。我知道还有其他方法可以实现这一点,但我试图把它解决掉。请帮忙。
基本上我需要完成这些功能。
- 后缀应显示在编辑文本的末尾。
- 后缀不应与用户键入的文本重叠。
这是我的代码。
public class SuffixEditText extends EditText {
private String mSuffix = "Suffix";
private Rect mSuffixRect = new Rect();
public SuffixEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
getPaint().getTextBounds(mSuffix, 0, mSuffix.length(), mSuffixRect);
mSuffixRect.left += getPaint().measureText(" ");
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawText(mSuffix, super.getCompoundPaddingRight(), getBaseline(), getPaint());
}
@Override
public int getCompoundPaddingRight() {
return super.getCompoundPaddingRight()+ mSuffixRect.width();
}
编辑1:
我试图Iharob铝Asimi的答案,我认为这是很好的点开始。它正在工作,但有以下问题。
- 后缀不与原文一致
- 没有得到原来的文本颜色
对不起,不知何故,我没有注意到这个问题被回答。它正在工作,但不在文本中心。我将在原始问题中添加更多详细信息。 –
@ChathurangaShanJayarathna如果你了解我的代码,就可以实现中心化。仔细阅读。我记得我不想让文字居中。 –