Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Progressbar verschwindet beim scrollen der ListActivity

Das Thema "Progressbar verschwindet beim scrollen der ListActivity" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 29.09.2011, 23:13   #1 (permalink)
Neuer Benutzer

Registriert seit: 29.09.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Progressbar verschwindet beim scrollen der ListActivity

Ich habe eine ListActivity mit Views in denen ProgressBar mit fixem Wert (68kB, 20% oder so) stecken.
Das sieht zunächst gut aus...
Tja, scrolle ich ein dann aber Listenelement aus dem sichtbaren Bereich heraus und scrolle dann zurück ist der ProgressBar weg. Texte sind da... Balken ist weg

Ich habe es nochmal geprüft... die listactivity verliert die Progressbars immer, wenn ich im Adapter dem Progressbars ein eigenes (grünes) Drawable mit setProgressDrawable() zuweise und es dann wage zu scrollen!


Lasse ich den Progressbar auf hässlich-gelb-default ist alles ok....dann darf ich scrollen und nichts verschwindet...

Ich muss die farbe aber ändern!
Ideen?

Marc
bachmarc ist offline   Mit Zitat antworten
Alt 30.09.2011, 10:34   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

ja, dazu musst du dir mal ganz genau ansehen, wie so eine ListView mit dazugehörigem Adapter funktioniert

Die Views werden recycled. Das ist genau der Grund, warum die Bars bei dir verschwinden.
Eine ListView mit Progressbars ist ein wenig komplizierter.

Ich hatte sowas mal gelöst, indem ich die ListView weggelassen habe und die Zeilen selbst auf den Screen "gezeichnet" habe.

Je nach Anwendungsfall ist das besser oder schlechter. Du musst auf jeden Fall im Adapter in der getView immer alle Werte richtig setzen.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 30.09.2011, 11:35   #3 (permalink)
Neuer Benutzer

Registriert seit: 29.09.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

Hi,
um ehrlich zu sein ist mir die Sache nicht völlig klar...
Ich habe einen eigenen Adapter gebaut und damit auch meine eigene getView() ausgeprägt. Ich habe mich ans Designpattern mit holder und convertView gehalten, weil ichs performant halten möchte.

Da ich den rückgabe-View ohnehin komplett in getView() "aufblase" und fülle, verstehe ich nicht, warum der Progressbar beim zweiten Durchlauf verschwindet.
Da wird doch auch nur noch getView gerufen und die position mitgeteilt...

Scrolle ich was raus, sehe ich im catlog wie die GC zuschlägt... ich bin sicher da wird mein Progressbar terminiert

Mhhh...
bachmarc ist offline   Mit Zitat antworten
Alt 30.09.2011, 11:37   #4 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

nein dein progressbar wird sicher nicht unwiderruflich gelöscht.

füllst du beim getview die progressbar mit dem richtigen wert?

setzt du sie auch visible ?

wirst schon einen code posten müssen, damit wir uns das besser ansehen können
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 30.09.2011, 15:38   #5 (permalink)
Neuer Benutzer

Registriert seit: 29.09.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

Hier mal meine getView()... das ganze versagt beim Scrollen immer dann, wenn ich die Methode adjustdurationBar() aufrufe.

Ich hatte es vorher direkt in getView() und hab spasseshalber auch mal die Drawables von ProgressBar holder.durationBar durch ein gecodetes getauscht.

---> Beim Scrollen versagt es, nur der orginal Progressbar überlebt

PHP-Code:
[LEFT]@Override
public View getView(int positionView convertViewViewGroup parent) {
ViewHolder holder;
Script currentScript this.scriptList.get(position);

if (
convertView==null){
convertView=inflator.inflate(R.layout.scriptlevelviewparentfalse);

holder = new ViewHolder();
holder.statusIcon = (ImageViewconvertView.findViewById(R.id.statusIcon);
holder.scriptName = (TextViewconvertView.findViewById(R.id.scriptName);
holder.scriptStatus = (TextViewconvertView.findViewById(R.id.scriptStatus);
holder.durationBar = (ProgressBarconvertView.findViewById(R.id.durationBar);
holder.scriptDuration = (TextViewconvertView.findViewById(R.id.scriptDuration);


convertView.setTag(holder);

} else {
holder = (ViewHolderconvertView.getTag();
}

holder.scriptName.setText(currentScript.getName());
holder.scriptStatus.setText(""currentScript.getStatus().statusCode+": "currentScript.getStatus().statusText);

// unfortunately scrolling deletes progressbar :(
adjustProgressBar(holder.durationBarcurrentScript.getStatus());

holder.durationBar.setProgress(67); 
holder.scriptDuration.setText(currentScript.getLongestExecutionDuration()+ "ms"); 
holder.statusIcon.setImageResource(currentScript.getStatus().statusIconID);
holder.durationBar.setVisibility(holder.durationBar.VISIBLE);
return 
convertView;


}

static class 
ViewHolder{
ImageView statusIcon;
ProgressBar durationBar;
TextView scriptDuration;
TextView scriptName;
TextView scriptStatus;

}

private 
void adjustProgressBar(ProgressBar barExecutionStatus status){

Resources res this.context.getResources();
if (
status.statusColor == ExecutionStatus.EEMGREENbar.setProgressDrawable(res.getDrawable(R.drawable.eemgreendurationbar)); 
if (
status.statusColor == ExecutionStatus.EEMREDbar.setProgressDrawable(res.getDrawable(R.drawable.eemreddurationbar));
if (
status.statusColor == ExecutionStatus.EEMGREYbar.setProgressDrawable(res.getDrawable(R.drawable.eemgreydurationbar));
if (
status.statusColor == ExecutionStatus.EEMYELLOWbar.setProgressDrawable(res.getDrawable(R.drawable.eemyellowdurationbar));


}[/
LEFT
bachmarc ist offline   Mit Zitat antworten
Alt 04.10.2011, 20:02   #6 (permalink)
Neuer Benutzer

Registriert seit: 29.09.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

tja nun scheint keiner eine idee zu haben... wohl ein bug im sdk?

Marc
bachmarc ist offline   Mit Zitat antworten
Alt 04.10.2011, 20:42   #7 (permalink)
Android Experte
 
Benutzerbild von DieGoldeneMitte

Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

Ohne jetzt tief in den Code geguckt zu haben:

Das klingt nach dem "GUI aus falschem Thread geupdatet"-Problem.
__________________
Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon.
Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten.
Tipp: Zum "Danke" sagen gibt es einen Button.
DieGoldeneMitte ist offline   Mit Zitat antworten
Alt 05.10.2011, 12:47   #8 (permalink)
Neuer Benutzer

Registriert seit: 29.09.2011
Beiträge: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Progressbar verschwindet beim scrollen der ListActivity

Das UI ist ein Dummy... es gibt keine Threads die ich aktiv gestartet hätte.
Der ProgressBar ist völlig statisch... er zeigt einen festen Wert.
bachmarc ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
ListActivity - beim Klicken neue Elemente anzeigen xben89 Android App Entwicklung 1 22.08.2011 12:52
Tastatur verschwindet beim SMS tippen Tobman Root / Hacking / Modding für Samsung Galaxy 3 09.08.2011 20:27
Lag beim scrollen Unmatched Samsung Galaxy S (I9000) Forum 2 20.05.2011 16:40
ListActivity: mit simple_list_item_checked verschwindet die Schriftfarbe JoEW Android App Entwicklung 1 19.02.2011 19:29
Ruckeln beim Scrollen in Telefonbuch LarsD HTC Desire Forum 5 01.06.2010 09:47




Du liest gerade: "Progressbar verschwindet beim scrollen der ListActivity" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.