2012-05-25 10 views
9

Es gibt viele Möglichkeiten, ListViews zu stylen, um ihnen ein elegantes Aussehen zu geben, aber alle von ihnen betreffen die Anpassung des Adapters oder das Schreiben von zusätzlichem Code.Android ListView Themen

Mit der Veröffentlichung von Android 4.0 müssen sich leider Dinge ändern. Google polierte sein Holo-Thema und gab ihm ein neues Aussehen. Alle Entwickler werden nun ermutigt, sie zu verwenden, damit alle Apps gleich aussehen.

Und hier ist das Problem. Google hat 4.0 ausgerollt, aber es gibt immer noch Leute, die ältere Android-Versionen verwenden. Wir können nicht einfach unsere bisherigen benutzerdefinierten Anwendungsthemen verlassen und Holo verwenden, da dies die visuelle Erfahrung für Benutzer mit älteren Geräten ruinieren wird. Und wir können 4.0 Benutzer nicht zwingen, nur Holo zu benutzen, denn seien wir ehrlich - es ist immer noch nicht perfekt.

Das Ziel ist es, eingebaute Themes System zu verwenden und einige Alternativen für Holo vorzubereiten, die auf allen Geräten gut aussehen werden. Dann können wir nur mit setTheme() und ohne zusätzliche Probleme zwischen Holo und unseren Themen wechseln. Unglücklicherweise ist es nicht so einfach. Wir sind auf die Fähigkeiten des bestehenden Themensystems beschränkt und einige Dinge sind nur schwer zu tun. Und hier kommt meine Frage.

Nehmen wir alles, was ich erwähnt habe, wie können wir ListView aussehen? Ich bin, um herauszufinden, nicht in der Lage, wie man:

  • erstellen Liste mit abgerundeten Ecken und stellen Sie sicher, dass der Wähler Hintergrund nicht ruinieren, wenn die erste/letztes Element der Auswahl
  • abgerundete Ecken erstellen nicht für die Liste aber Abschnitte von Headern, so etwas wie hier getrennt: enter image description here

Die Lösung Listviews erstellt von PreferenceActivity ohne zusätzliche Zeilen Code beeinflussen sollte. Alles soll im Thema enthalten sein:

<theme name="SampleTheme" parent="android:Theme"> 
    ... 
</theme> 

Ich bitte nicht Lösungen zu schreiben, die Stile nicht & Themen verwenden. Sie können leicht in anderen Fragen gefunden werden, hier auf Stack Overflow.

Vielen Dank im Voraus.

+1

Vielleicht möchten Sie dies überprüfen: http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index. html –

+0

@JaredRummler Dieser Link ist kaputt. – Zety

+0

@WalR I * denke * das ist das Gleiche: http://romannurik.github.io/AndroidAssetStudio/ –

Antwort

1

Ich kann zwei Möglichkeiten sehen, dies zu lösen.

Es ist einfach, ein Thema für Ihre Listenansichten zu verwenden, das den Hintergrund angibt, der wiederum ein 9-Feld mit abgerundeten Ecken oder eine von Ihnen angegebene Xml-Form ist (mit abgerundeten Ecken). Dies hat den Nebeneffekt, dass der Zeilenauswahl-Selektor "über" dem von Ihnen angegebenen Hintergrund erscheint und den Effekt dadurch beeinträchtigt. Es ist jedoch ziemlich einfach zu implementieren.

Die zweite Option besteht darin, einfach Kopf- und Fußzeilen zu Ihren Listenansichten hinzuzufügen, deren Hintergründe Selektoren mit abgerundeten Ecken oben (und unten) sind. Sie können Stile für diese auch angeben, wenn Sie wirklich wollen. Sorry für diesen letzten Kommentar, aber ich musste es sagen. Bitte versuchen Sie nicht, Ihre App wie eine iPhone-App aussehen zu lassen :)