2012-05-25 17 views
9

Istnieje wiele sposobów na styl listViews, aby nadać im elegancki wygląd, ale wszystkie one wymagają modyfikacji adaptera lub napisania dodatkowego kodu.Android ListView motywy

Wraz z wydaniem Androida 4.0, nieszczęśliwie wszystko musi się zmienić. Google dopracował swój motyw Holo i nadał mu nowy wygląd. Wszyscy programiści są teraz zachęcani do korzystania z niego, aby wszystkie aplikacje wyglądały tak samo.

I tu jest problem. Google wdrożyło 4.0, ale nadal używają starszych wersji Androida. Nie możemy po prostu opuścić wcześniejszych niestandardowych motywów aplikacji i używać Holo, ponieważ zepsuje to wizualne wrażenia dla użytkowników ze starszymi urządzeniami. I nie możemy zmusić 4.0 użytkowników do używania Holo, bo bądźmy szczerzy - nadal nie jest doskonały.

Celem jest użycie wbudowanego systemu motywów i przygotowanie alternatyw dla Holo, który będzie dobrze wyglądał na wszystkich urządzeniach. Wtedy możemy po prostu przełączać się między Holo i naszymi tematami za pomocą setTheme() i żadnych dodatkowych problemów. Niestety nie jest to takie proste. Ograniczamy się do możliwości istniejącego systemu tematycznego, a niektóre rzeczy są po prostu trudne. I tu pojawia się moje pytanie.

Biorąc pod uwagę wszystko, o czym wspomniałem, jak możemy kontrolować wygląd ListView? Nie jestem w stanie dowiedzieć się, w jaki sposób:

  • utworzyć listę z zaokrąglonymi narożnikami i upewnij się, że tło selektor nie zepsuć przy wyborze pierwszego/ostatniego elementu
  • utworzyć zaokrąglone narożniki nie na liście ale sekcje oddzielone nagłówki, coś jak tutaj: enter image description here

roztwór powinien wpłynąć ListViews stworzone przez PreferenceActivity bez żadnych dodatkowych linii kodu. Wszystko powinno być zawarte w temacie:

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

Uprzejmie Nie pytaj odpowiedzieć rozwiązania, które nie używać styli & tematów. Można je łatwo znaleźć w innych pytaniach, tutaj w Stack Overflow.

Z góry dziękuję.

+1

Może chcesz to sprawdzić: http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index. html –

+0

@JaredRummler Ten link jest uszkodzony. – Zety

+0

@WalR I * myślę * to jest to samo: http://romannurik.github.io/AndroidAssetStudio/ –

Odpowiedz

1

Widzę dwa sposoby rozwiązania tego problemu.

Jednym z nich jest po prostu użycie motywu do swoich widoków list określających tło, które z kolei jest 9 łatką z zaokrąglonymi narożnikami lub określonym przez Ciebie kształtem xml (również z zaokrąglonymi narożnikami). Będzie to miało efekt uboczny, gdy selektor wiersza listy wyświetli się "ponad" wybranym tłem, co zepsuje efekt. Jest to dość proste do wdrożenia.

Druga opcja to po prostu zawsze dodawać nagłówki i stopki do listy odsłon, które mają tło z selektorami z zaokrąglonymi narożnikami u góry (i u dołu). Jeśli chcesz, możesz również podać style dla tych stylów. Przepraszamy za ten ostatni komentarz, ale musiałem to powiedzieć. Nie staraj się, aby Twoja aplikacja wyglądała jak aplikacja na iPhone'a :)