In Android 3.0 kann das Konzept "aktiviert" mit einem "aktivierten" Hintergrund gerendert werden. Auf diese Weise erhalten Sie die dauerhafte Leiste, die angezeigt wird, wenn Sie auf ein Listenfragment tippen, und geben den Kontext für das Fragment rechts in der Liste an (z. B. wird durch Tippen auf einen Ordner in Google Mail dieser Ordner hervorgehoben und ein weiteres Listenfragment geöffnet, um die Konversationen in diesem Ordner anzuzeigen ).
Zum Beispiel zeigen die Fragmentbeispiele Dinge wie:
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));
Diese Ressource ( android.R.layout.simple_list_item_activated_1
) ist neu in Android 3.0. Was macht es "aktiviert" ist:
android:background="?android:attr/activatedBackgroundIndicator"
Dieser Attributwert ist neu in Android 3.0 und führt zum Absturz, wenn Sie versuchen, ihn in früheren Android-Versionen zu verwenden, soweit ich das beurteilen kann. Ich möchte den Hintergrund auf diesen magischen Wert für die Kombination 3.0 / groß / Landschaft einstellen und ihn ansonsten überspringen.
Ich kann dies erreichen, indem ich zwei separate Versionen des Layouts habe, eine in einem -v11
Ressourcensatz und eine in einem regulären Ressourcensatz. Dies ist jedoch etwas weniger trocken als ich es gerne hätte, da der Großteil des Layouts derselbe ist und nur dieses eine Attribut entweder enthalten ist oder übersprungen wird.
Ich habe versucht, zeichnbare Ressourcen-Aliase zu verwenden, damit android:background
sie auf den Alias verweisen können und der Alias die -v11
Differenzierung <bitmap>
übernimmt , aber Drawables scheinen das nicht zu mögen android:src="@null"
.
Ich vermute, dass es einen Stil- und Themenansatz für dieses Problem gibt, aber da ich mich nie vollständig mit diesen befasst habe (eine meiner peinlicheren Wissenslücken bei Android), bin ich mir nicht ganz sicher, was ich tun soll.
Hat jemand ein Muster für die Verwendung von "aktiviert" in 3.0 und das Überspringen in "vor 3.0" über separate Layouts hinaus ausgearbeitet?
Vielen Dank!