2012-08-07 22 views
7

Mam programowo wygenerowany ScrollView z wewnątrz TextView. Od czasu do czasu chciałbym zaktualizować tekst w TextView, a niektóre zaimplementowały funkcję obsługi w celu aktualizacji elementu GUI TextView. Wydaje się, że wywołuje/działa poprawnie.ScrollView aktualizacja zawartości

Jednak obecnie jedynym sposobem znalazłem się faktycznie uzyskać TextView pokazać dołączany informacji jest zadzwonić:

consoleText.append("New text to add to TextView"); 
// then: 
myScrollView.removeView(myTextView); 
myScrollView.addView(myTextView); 

To nie jest specyfika optymalny i zastanawiałem się, jak inaczej mogę odświeżyć zawartość ScrollView pokazać moje nowo dodanej informacji ...

także:

invalidate(); 
postvalidate(); 

Nic nie robię - obiekt TextView ma nowy tekst (patrząc w debugowanie), ale nie rysuje go na ekranie, chyba że zadzwonię do funkcji dodawania/usuwania.

Dzięki za wszelkie informacje/pomoc można dać

FR

+0

Czy funkcja append wywołuje funkcję setText() w widoku tekstowym pod maską? – Samuel

Odpowiedz

8

należy zadzwonić invalidate() i requestLayout() na TextView, a może Scrollview.

+0

consoleText.invalidate(); consoleText.requestLayout(); To dziękuję :) – FiniteRed

+1

Wywołanie 'invalidate()' oraz 'requestLayout' na' ScrollView' rozwiązało również mój problem z obcinaniem widoków. Dzięki! – camelCaseCoder