Привета У меня есть несколько вида автозаполнения текста с пространством Tokenizer и использовать ReplacementSpan для изменения цвета фона в каждых контактахReplacementSpan в multiautocomplete TextView перекрытии
моего заказа замена код
public class MyForgroudSpan : ReplacementSpan
{
public override void Draw(Canvas canvas, ICharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint)
{
var rect = new RectF(x , top, x + paint.MeasureText(text, start, end)+8, bottom);
paint.Color = Android.Graphics.Color.ParseColor("#E5E5E6");
canvas.DrawRect(rect, paint);
paint.Color = Android.Graphics.Color.Black;
int xPos = Java.Lang.Math.Round(x + (8/2));
int yPos = (int)((canvas.Height/2) - ((paint.Descent() + paint.Ascent())/2));
canvas.DrawText(text, start, end, xPos, yPos, paint);
}
public override int GetSize(Paint paint, ICharSequence text, int start, int end, Paint.FontMetricsInt fm)
{
return Java.Lang.Math.Round(paint.MeasureText(text, start, end))+8;
}
}
я установить spannable строки здесь
SpannableStringBuilder ssb = new SpannableStringBuilder(Text.trim());
ssb.SetSpan(new MyForgroudSpan(), x, x + c.Length, SpanTypes.ExclusiveExclusive);
его нормально, когда несколько автообновленных текстовых просмотров имеют одну строку, но они поступают на несколько строк, это означает, что они перекрывают каждый текст
смотрите на экраны
1.Single линии
2.multiline изображения
Когда я использую у значения, как этот
canvas.DrawText(text, start, end, xPos, y, paint);
ли вы проверить эту – Manikandan
Yep. как уже упоминалось, если вы хотите придерживаться своего фактора замены SpplacementSpan в параметре y метода Draw в вашем canvas.DrawText. В вашем фрагменте вы полностью игнорируете его. Это приводит к тому, что текст рисуется с одинаковым смещением y, независимо от его номера строки. –
, пожалуйста, уточните мой обновленный вопрос, когда я использую значение y, это текст фона, выглядящий таким образом, даже я устанавливаю дополнительное пространство пробела – Manikandan