Я динамически заполняю многострочный TextView с элементами. Строка введенных элементов обертывается. Каждый элемент состоит из двух частей: текста, за которым следует изображение. Длина изображения - 2 символа. Элементы разделены пробелом. Для добавления элементов я использую SpannableStringBuilder. Все работает отлично, за исключением одного. Добавляя новый элемент, который переходит к следующей строке (TextView обертывает строку), изображение предыдущего элемента, которое является последним в строке выше, исчезает, независимо от того, сколько места по-прежнему доступно в этой строке. И если я удалю недавно добавленный элемент в новой строке, это изображение снова появится снова. Таким образом, часть изображения каждого элемента, которая является последней в каждой строке, не отображается. Я использую Android 4.0.3.Wrappable TextView с SpannableStringBuilder и ImageSpan скрывает последнее изображение на каждой строке
Вот мой код:
TextView textView = (TextView) findViewById(R.id.textview);
textView.setMovementMethod(new ScrollingMovementMethod());
SpannableStringBuilder ssb = new SpannableStringBuilder();
//then for each new element I do the following
ssb.append(" "); //space separating elements (skip for the first element)
ssb.append("text");
Bitmap image = BitmapFactory.decodeResource(getResources(), imageId);
ssb.append(" "); //prepare 2-character space for the image
ssb.setSpan(new ImageSpan(image), ssb.length() - 2, ssb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //put the image to the prepared space
textView.setText(ssb, BufferType.SPANNABLE);
Я знаю, что есть решение с TextWatcher. В то же время, я не вижу потоков в своем коде и не могу понять, почему последнее изображение на каждой строке скрывается. Любые предложения будут высоко оценены. Благодарю.
Так вы могли бы решить эту проблему? У меня такая же проблема. Пожалуйста, поделитесь своим решением. –
Мне хотелось бы услышать решение для этого, у меня такая же проблема. – Camputer
@ 4aRkKn1gh7 Проверьте [мой ответ ниже] (http://stackoverflow.com/a/33282500/4899346). –