Ausblenden von Gruppenindikator für leere Gruppen Ein weiteres Thema, das auf diesem Blog zurückkehrt, ist die erweiterbare Listenansicht. Es scheint, dass diese lästigen erweiterbaren Listen immer einige Überraschungen auf Lager haben. Dieses Mal lief ich in die Frage der Gruppenindikatoren und leeren Gruppen. Gruppenindikatoren sind die kleinen Pfeile vor den Gruppenzeilen, die angeben, ob die Gruppe erweitert oder zusammengebrochen ist. Schwierigkeiten sind, dass diese Indikatoren immer sichtbar sind, auch wenn die Gruppe leer ist. Dies irrt die Benutzer, die denken, dass sie die Gruppe erweitern können. Die Gruppe erweitert sich zwar, aber da es leer ist, erscheinen keine Kinderreihen, die extrem ärgerlich sein können. Einige Internetquellen schlagen Zauberei mit der Variablen, die den Gruppenindikator zurückgibt. Wenn Sie dem Rat folgen, verschwindet der Gruppenindikator für alle zusammengebrochenen Gruppen (auch für diejenigen, die untergeordnete Zeilen haben). Dieses überraschende Verhalten ist durch Design. Kommentar in der Quelle von ExpandableListView sagt: Wenn die Gruppe zusammengebrochen ist, so betrachten wir es aus Performancegründen leer. Die Methode, in der dieses Verhalten verkabelt ist, ist privat, es ist nicht möglich, es durch Unterklassen von ExpandableListView zu überladen. Glücklicherweise ist die Lösung sehr einfach, auch wenn ein bisschen knifflig. Wir werden die Gruppenindikatorlogik in ExpandableListView vollständig deaktivieren und unseren eigenen Indikator aus dem Adapter zur Verfügung stellen, der die erweiterbare Liste unterstützt. Die Gruppenanzeige wird deaktiviert, indem Sie sie auf eine transparente Farbe in main. xml setzen. Dann überschreiben wir getGroupView im Adapter (diesmal war es ein SimpleExpandableListAdapter aber die Methode funktioniert für jeden Adapter). Wir mussten dem Gruppenlayout manuell ein ImageView hinzufügen - dies geschieht in der Regel automa - tisch durch ExpandableListView, aber wir haben diese Funktionalität nur deaktiviert. Sobald getGroupView die Gruppenzeile zurückgibt, verschieben wir die ImageView, die als Gruppenindikator wirkt, unter Berücksichtigung der untergeordneten Anzahl für die Gruppe neben ihrem erweiterten zusammengefalteten Zustand. Das bedeutet leider, dass du in deinem Programm benutzerdefinierte erweiterte zusammengefasste Icons haben musst - diese Icons sind im Beispielprogramm extrem hässlich, ich überlasse es dir als Hausaufgaben, um sie zu verschönern. 16 kommentare: I39m ein Community-Führer auf einem Netzwerk von Entwickler-Websites. Ich habe Ihren Blog-Inhalt wirklich gemocht und dachte, du könntest an einer zusätzlichen Exposition auf unseren Seiten interessiert sein. Heiße mir eine E-Mail an ross bei dzone dot com und ich kann alle Details erklären. Hey kannst du mir helfen? Ich bin nicht in der Lage, den Gruppenindikator in einer der erweiterbaren Liste zu sehen. Was Milbe wäre das Problem. Browse durch mehr Android Tutorials. Wenn Sie gerne ein Tutorial zu einem bestimmten Thema zu sehen, hinterlassen Sie einen Kommentar in der Wunschliste Seite. Wir veröffentlichen häufig neue Tutorials zusammen mit App-Releases. Sie können unseren Newsletter abonnieren, um alle Updates in Ihrem Posteingang zu erhalten. Jetzt können Sie die neueste Java-Quelle mit jedem App-Update gebündelt bekommen. Installiere die App von Google Play und gehe zu Einstellungen gt Extras. Erstellen Sie eine Notizblock und To-Do-Liste kombinierte App in Android Von Sovelluksen Valmistaja Schlüsselwörter: TabHost ListView ExpandableListActivity SQLite SimpleCursorAdapter SimpleCursorTreeAdapter PreferenceActivity AlertDialog ContextMenu Spinner Galerie ScrollView Kamera Übersicht Erstellen Sie ein neues Eclipse Android Projekt Definieren Sie das Datenmodell Die Android Manifest Datei Die Anwendung Klasse Entwickeln Sie die UI Die Registerkarte "Durchsuchen" Die Registerkarte "Verwalten" Der Bildschirm "Voreinstellungen" Der Dialog "Alert" Das Kontextmenü Die Seite "Seitenaufnahmen bearbeiten" 8. Die Registerkarte "Verwalten" Die Registerkarte "Verwalten" ähnelt der Registerkarte "Durchsuchen", außer dass sie ein ExpandableListView und SimpleCursorTreeAdapter verwendet. Jede Gruppenposition repräsentiert eine Kategorie, in der als untergeordnete Elemente die Notizen sind. Die Implementierung einer erweiterbaren Liste ist sehr einfach, da Android ExpandableListActivity bereitstellt, das bereits die Funktionalität implementiert, um eine Gruppenposition zu erweitern. Android bietet ListActivity für die Implementierung einer Liste. Allerdings haben wir es nicht bei der Entwicklung der Registerkarte Durchsuchen verwendet, da es ein bekanntes Problem im SDK gibt. In Kürze, die id der Ansichten i. e. android: idlist Konflikt, wenn zusammen mit ExpandableListActivity in einem TabHost verwendet. Hier ist ein Überblick über die ManageActivity-Klasse. SimpleCursorTreeAdapter ist eine abstrakte Klasse und wir müssen die Implementierung für die Methode getChildrenCursor () bereitstellen. Darüber hinaus haben wir bindGroupView () und bindChildView () überschrieben, um das Symbol neben dem Titel zu setzen. Die Inhaltsansicht für diese Registerkarte ist fast ähnlich der Registerkarte Durchsuchen. Hier ist der Teil, der anders ist. Beachten Sie, dass Sie Ihren eigenen groupIndicator in der ExpandableListView angeben können. Andernfalls wird die Standardanzeige angezeigt. Allerdings haben wir uns entschieden, es zu entfernen, indem wir es als null setzen. 9. Der Bildschirm "Einstellungen" Die Schaltfläche "Werkzeuge" am unteren Rand der Registerkarte "Verwalten" navigiert den Benutzer zum Bildschirm "Einstellungen". Erstellen Sie eine neue Aktivität und machen Sie es erweitern PreferenceActivity. Hier ist der Code. Die Datei settings. xml wurde früher beim Erstellen der Anwendungsklasse erstellt. Deklarieren Sie die SettingsActivity in AndroidManifest. xml Bearbeiten Sie die tabmanage. xml, um onClick-Funktion für die Schaltfläche Einstellungen festzulegen. Fügen Sie onClick () - Methode zu ManageActivity hinzu. Im nächsten Kapitel diskutieren wir, wie der Ablauf der Applikation umgesetzt wird und die verschiedenen Menüs und Dialoge.
No comments:
Post a Comment