para - menus en android ejemplos
Configuración de la barra de menú de fondo y persistencia de Android: el uso de un atributo en versiones anteriores provoca un bloqueo-¿Hay un enfoque de tema/patrón? (1)
En Android 3.0, el concepto de "marcado" se puede representar utilizando un fondo "activado". Esto le da la barra persistente que ve cuando toca un fragmento de lista, proporcionando contexto para el fragmento al derecho de la lista (por ejemplo, al tocar en una carpeta en Gmail destaca esa carpeta y abre otro fragmento de lista para mostrar las conversaciones en esa carpeta )
Por ejemplo, las muestras de fragmentos muestran cosas como:
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));
Ese recurso ( android.R.layout.simple_list_item_activated_1
) es nuevo en Android 3.0. Lo que lo hace "activado" es:
android:background="?android:attr/activatedBackgroundIndicator"
Ese valor de atributo es nuevo para Android 3.0 y hará que se cuelgue si intenta usarlo en versiones anteriores de Android, por lo que puedo decir. Quiero establecer el fondo de este valor mágico para la combinación 3.0 / grande / paisaje, y omitirlo de lo contrario.
Puedo lograr esto teniendo dos versiones separadas del diseño, una en un -v11
recursos -v11
, una en un conjunto de recursos regular. Sin embargo, esto es un poco menos SECO de lo que me gustaría, ya que la mayor parte del diseño es el mismo, ya que solo este atributo se incluye o se omite.
Intenté utilizar alias de recursos dibujables, por lo que el android:background
podría referirse al alias y el alias manejaría la diferenciación -v11
, pero a los -v11
<bitmap>
no parece gustarles android:src="@null"
.
Sospecho que hay un enfoque de estilos y temas para este problema, pero como nunca me he acostumbrado a eso (uno de mis vacíos de conocimiento de Android más vergonzosos), no estoy completamente seguro de qué hacer.
¿Alguien ha elaborado un patrón para usar "activado" en 3.0 y omitirlo en pre-3.0, más allá de los diseños por separado?
¡Gracias!
Los estilos son tu amigo ...
Tiene dos directorios de valores, uno es values-v11, y el otro los valores predeterminados.
Cada directorio de valores contiene un styles.xml, la diferencia es que contiene los valores predeterminados uno;
<style name="listViewActivatedStyle"/>
Los valores-v11 contienen;
<style name="listViewActivatedStyle">
<item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>
Entonces puedes tener un diseño único que usa;
style="@style/listViewActivatedStyle"
y el apropiado es seleccionado.