5

I have a listview and for a specific item I'm refreshing the remaining time every second. It works fine, but I'm having a small bug. Whenever I call

duration.setText(newRemainingValue);

to update the value, another textView from the same row is impacted. This other textVewi displays a scolling text

title.setSelected(true);
title.setEllipsize(TruncateAt.MARQUEE);

and whenever I change the 1st textView value, the second one resets the scrolling and starts scrolling from the beginning. It looks like this issue is only present when I do this in a ListView

Any idea how to fix this ?

user1026605
  • 1,633
  • 4
  • 22
  • 58

1 Answers1

10

It sounds like the textviews are set to wrap_content. That will trigger a layout pass whenever the text is changed. Try using match_parent or setting the width and height to a fixed value, so that changing the text will not trigger a layout pass

dangVarmit
  • 5,641
  • 2
  • 22
  • 24
  • You're totally right ! Setting a fixed width for the TextView I'm updating fixed the issue. Thanks a lot ! Is there by any chance another way to prevent this from happening if I keep a wrap_content width ? Maybe by subclassing TextView and overriding some function ? – user1026605 Feb 03 '15 at 19:26
  • This is realy helpful. You saved my life. Thank you. – Janaki Aug 08 '17 at 05:30
  • Wow this fixed a textview i have on a fragment in a tab too. I used the textview for diagnostics for an asynchronous https post the uithread update cut off the last part of the string. Really a great solution. – dcarl661 Aug 11 '21 at 22:52