Der Kontrollkästchenstil in der Listenansicht ist falsch

8

Ich habe ein Problem mit dem Styling in meinen Checkboxen, die in Listenansichten erscheinen. Das von meiner App verwendete Thema ist Holo, aber die Kontrollkästchen erscheinen im alten Stil. Checkboxen, die anderswo erscheinen, sehen gut aus. Ich mache nichts Besonderes, wie zum Beispiel meinen eigenen Stil zu kreieren. Screenshots:

Die Kontrollkästchen sollen wie auf dem rechten Bild aussehen. Dies ist auf v4.0.3. Die Kontrollkästchen sehen aus wie auf einem anderen Gerät, das ich mit v4.4.2 ausprobiert habe.

XML für die Listenansichtszeile:

%Vor%

Wie kann ich die Kontrollkästchen auf der linken Seite so aussehen lassen, wie sie sollen?

    
JustcallmeDrago 11.01.2014, 23:09
quelle

4 Antworten

3

Kopieren Sie die Holo-Checkbox-Bilder aus dem android-Zeichnungsordner für alle dpis und Auflösungen. Setzen Sie dann das Attribut android: button auf den neuen Selektor xml. Auf diese Weise haben Sie vollständige Kontrolle darüber, wie es auf dem Zielgerät aussieht.

%Vor%     
Shakti 17.01.2014, 09:30
quelle
3

Ich bin kürzlich auf das gleiche Problem gestoßen und habe eine echte Lösung gefunden, nicht nur einen Workaround.

Wenn Sie Ihre Ansichten in getView() methode aufblasen:

public View getView(int position, View convertView, ViewGroup parent) { return inflater.inflate(R.layout.list_item, parent, false); }

Sie müssen sicherstellen, dass der von Ihnen verwendete Inflator den Aktivitätskontext und nicht den Anwendungskontext enthält, da der Aktivitätskontext das verwendete Thema und die Anwendung nicht kennt.

Stellen Sie sicher, dass Sie Inflater auf eine der folgenden oder ähnlichen Arten erstellen:

  • LayoutInflater.from(activity);
  • getLayoutInflater(); // from within activity
  • LayoutInflater.from(parent.getContext());

Um diese Lösung schnell zu überprüfen, ersetzen Sie einfach:

return inflater.inflate(R.layout.list_item, parent, false);

mit:

return LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);

    
questioner 10.04.2015 20:30
quelle
0

Ich hatte auch dieses Problem. Ich benutze Samsung Galaxy S4 und CheckBox in meiner App erscheint Old School-Typ. Wenn ich die gleiche App in "Android Emulator" laufe, scheint es so, wie ich es möchte.

Beste Sache, die ich vorschlagen, mach dir keine Sorgen darüber. Laden Sie einfach die App auf den Marktplatz und es sollte in Ordnung sein.

    
Dushyant Patel 12.01.2014 00:49
quelle
0

Versuchen Sie, die targetSdkVersion in Ihrer AndroidManifest.xml-Datei auf die neueste zu setzen (stellen Sie sicher, dass Sie diese SDK-Version heruntergeladen haben):

%Vor%     
Henrique 14.01.2014 21:10
quelle