Die Sichtbarkeit eines ImageView kann nicht geändert werden

8

Ich habe eine ListView, die einen benutzerdefinierten Cursoradapter verwendet, um die ListView zu füllen.

Die row.xml

%Vor%

Wie Sie sehen können, ist die Sichtbarkeit von ImageView verschwunden. Ich will es schaffen sichtbar für eine bestimmte Zeile. Hier ist der Code, den ich ausprobiert habe, aber nicht arbeiten ...

%Vor%

Vielen Dank im Voraus.

%Vor%

BEARBEITEN:

Ich habe es funktioniert. Ich benutzte dies, um die ListView-Aktivität zu starten.

%Vor%

In der ListView-Aktivität

%Vor%

Dann habe ich das in bindview()

hinzugefügt %Vor%     
Dipesh 23.04.2012, 03:17
quelle

10 Antworten

2

Ich habe es funktioniert. Ich benutzte dies, um die Listenansicht zu starten.

%Vor%

In der Listview-Aktivität

%Vor%

Dann habe ich das in bindview () hinzugefügt

%Vor%     
Dipesh 24.04.2012 02:11
quelle
1

vielleicht sollten Sie es in getView() Ihres Adapters tun

BEARBEITEN:

%Vor%     
candyleung 23.04.2012 03:33
quelle
0

Du musst es so machen

%Vor%     
Yayo28 23.04.2012 03:33
quelle
0

Wenn es einige Zeit funktioniert, dann kann ich dir helfen. Was passiert, dass jedes Mal, wenn Sie Ihre ListView verschieben, alle Views neu erstellt werden, in diesem Fall speichert es nie den letzten State of View. Also, was Sie tun müssen, ist der Zustand Ihrer jeweiligen Bildansicht zu speichern und in getView () müssen Sie entsprechend einstellen.Ich poste eine meiner Antworten, es kann Ihnen helfen. Hier ist ein kleiner Code für Ihre Hilfe: Ich werde eine Boolean Arraylist erstellen.

private ArrayList imageview_visible = null;

Dann werde ich die Zustände aller Bildansichten in meinem Konstruktor als falsch setzen:

%Vor%

Schreiben Sie in Ihrem getView diesen Code:

public Zeige getView (int position, View convertView, ViewGroup Eltern) {      // SCHREIBE DEINEN CODE

%Vor%

}

Immer wenn Sie Ihre Ansicht ein- oder ausblenden, speichern Sie sie einfach in imageview_visible.set (true oder false). Dadurch wird der Status aller Bildansichten gespeichert und jede Bildansicht entsprechend eingestellt.

    
Bharat Sharma 23.04.2012 04:40
quelle
0

Verwenden Sie LayoutInflater, um das Ansichtsobjekt

zu erhalten %Vor%     
ankita gahoi 23.04.2012 04:41
quelle
0

Probieren Sie den folgenden Code wie folgt aus:

%Vor%

Es funktioniert für mich ... Es kann Ihnen helfen.

    
deepa 23.04.2012 04:24
quelle
0

Ich stieß auf ähnliche Probleme, bei denen mehrere Widgets für einige Zeilen, aber nicht für andere angezeigt wurden. Die Probleme waren auf Recycling zurückzuführen. Ich bin mir nicht ganz sicher, ob das dein Problem hier ist, aber du solltest es trotzdem behandeln. Der Trick besteht darin, Sichtbarkeit für jede Zeile festzulegen; anstatt nur für die Zeile, die Sie anzeigen / verschwinden möchten.

Also:

%Vor%

Andernfalls gehen Sie davon aus, dass für andere Positionen als 0 die Sichtbarkeit GONE ist, dies aber bei der Ansichtsrecycling möglicherweise nicht der Fall ist. Ich mache diese Arbeit übrigens in bindView. Nicht sicher, ob das technisch korrekt ist.

    
Joel Skrepnek 23.04.2012 04:35
quelle
0

Ich habe das gleiche Problem ... ich löste mit einer nicht standardisierten Lösung, aber arbeitete für mich ...

%Vor%

Importieren von R von Android

%Vor%     
Angel Ivorra 30.08.2013 15:14
quelle
0

Sowohl iv.setVisibility(View.VISIBLE); als auch iv.setVisibility(ImageView.VISIBLE); sind korrekt, aber es ist besser, View anstelle von ImageView zu verwenden, weil VISIBLE & amp; GONE sind in View class definiert.

Sie ändern am meisten die Sichtbarkeit ( VISIBLE oder GONE ) in if . wie:

%Vor%     
Hossain Khademian 26.01.2014 06:11
quelle
0

Sie können Ansichten mithilfe von setVisibility (int) ausblenden oder anzeigen. Verwende iv.setVisibility(View.VISIBLE);

    
LomE999 25.08.2014 10:02
quelle

Tags und Links