TextView Wrap Performance Problem

M

MichaelS

Erfahrenes Mitglied
51
Hallo zusammen,

ich habe folgendes Problem:
wenn ich in einter Listview eine TextView habe, die den Text umbrechen soll.
Wird die Performance beim Scrollen der Listview deutlich langsamer und ruckelt :(
Sobald ich nur ein Text reinmache, der nicht umgebrochen werden muss, geht es super schnell...

Layout ist so aufgebaut, dass ich links ein Bild habe und rechts die Textview.
Das Bilder hat eine feste Größe und die Textview nimmt den Rest.

Wäre super, wenn jemand eine Idee hätte, das Problem zu lösen! :drool:

Gruß
Michael
 
das bringt mir leider nichts :( das ist schon klar, dass man die views mitm holder wieder verwendet ;)

es geht darauf, dass du eine TextView hast mit einer dynamischen Breite un der Text aber deutlich länger und die TextView den Text umbrechen soll. Durch das Umbrechen wird die Listview extrem langsam beim scrollen.

Der ursprüngliche Beitrag von 11:50 Uhr wurde um 13:09 Uhr ergänzt:

meine einzige spontane idee wäre ein fiesen hack über ne webview zu machen =/
sprich das wrappen der webview überlassen aber webview in ner liste einbauen halte ich ebenso für kritisch :D

ich hoffe jemand hat eine idee :D
 
Hast du mal zum Testen das Laden der Bilder deaktiviert, so daß du sicher sein kannst, daß es wirklich an der TextView und dem Textumbruch hängt?
 
jeps hab ich schon ausprobiert. kannst es ganz einfach nachbauen :)
Listview mit einer textview und diese auf match lassen und dann ein content rein, der umgebrochen werden muss.

sobald du scrollst, ruckelt es =(

hätte es auch nicht gedacht, bevor ich es ausprobiert hab =/
 
So nach viel Zeit und ausprobieren, habe ich nun doch eine eigene Lösung gefunden ;)
Ich render das Control in nen Bitmap und überschreib die Draw Methode von der TextView und rendere da nur das Bitmap. Somit werden Layout-veränderungen nicht mehr genommen, aber brauche ich in dem fall nicht :)
PHP:
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.TextView;

public class CanvasTextView extends TextView {

	public CanvasTextView(Context context) {
		super(context);
		init();
	}
	public CanvasTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
		init();
	}
	public CanvasTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		init();
	}

	private Bitmap _cache = null;
	
	private void init() {
		setDrawingCacheEnabled(true); 
	}
	
	@Override
	protected void onDraw(Canvas canvas) {
		if (_cache == null) {
			super.onDraw(canvas);
			_cache = getDrawingCache();
		}
		canvas.drawBitmap(_cache, 0, 0, null);
	}
	
}


Der ursprüngliche Beitrag von 10:29 Uhr wurde um 11:59 Uhr ergänzt:

Habe leider noch Probleme mit dem aktualisieren von setDrawingCacheEnabled hat da jemand erfahrungen?
 

Ähnliche Themen

W
  • WuDiDong
Antworten
3
Aufrufe
767
jogimuc
J
T
Antworten
1
Aufrufe
856
jogimuc
J
S
Antworten
4
Aufrufe
995
Sempervivum
S
Zurück
Oben Unten