Upload
solo
View
120
Download
1
Embed Size (px)
DESCRIPTION
ayuda para los de mas
Citation preview
Android
Adición de la barra de acción
La barra de acción es uno de los elementos de diseño másimportantes que usted puede implementar para las actividadesde su aplicación.
Ofrece varias características de la interfaz de usuario quehacen que su aplicación inmediatamente familiar para losusuarios, ofreciendo consistencia entre otras aplicaciones deAndroid. Las funciones clave incluyen:
Un espacio dedicado a dar a su aplicación de una identidad yque indica la ubicación del usuario en la aplicación.
El acceso a las acciones importantes en una forma predecible(como Buscar).
El apoyo a la navegación y la vista de conmutación (confichas o listas desplegables).
Configuración de la barra de acción
En su forma más básica, la barra de acción muestra el título de laactividad y el icono de la aplicación a la izquierda.
Incluso en esta forma simple, la barra de acción es útil para todas lasactividades para informar a los usuarios acerca de dónde están y paramantener una identidad coherente para su aplicación.
Figura 1.
Una barra de acción conel icono de la aplicación yel título de la actividad.
La creación de una barra de acción básica requiere que suaplicación utiliza un tema de la actividad que permite a la barrade acción.
Cómo solicitar un tema de este tipo depende de qué versión deAndroid es el más bajo con el apoyo de su aplicación.
Así que esta lección se divide en dos secciones, dependiendode qué versión de Android es su mínimo admitido.
Soporte para Android 3.0 y superior.
Comenzando con Android (nivel de API 11) 3.0, la barra de acción seincluye en todas las actividades que utilizan el Theme.Holo tema (ouno de sus descendientes), que es el tema por defecto cuando seaeltargetSdkVersion o minSdkVersion atributo se establece en "11 " omayor
Así que añadir la barra de acción para sus actividades, basta conestablecer ya sea atributo a 11 o superior.
Por ejemplo:
<Manifiesto... >
<utiliza-sdk android: minSdkVersion = "11"...
/>
...
</ manifest>
NOTA:
Si ha creado un tema personalizado, asegúrese de que utilizauno de los Theme.Holo temas como su padre. Para obtenermás información, consulte Aplicar estilos a la barra de acción.
Ahora el Theme.Holo tema se aplica a su aplicación y todaslas actividades muestran la barra de acción.
Soporte para Android 2.1y superiores.
Adición de la barra de acciones, cuando se ejecutan enversiones anteriores a Android 3.0 (frente a Android 2.1), debeincluir la biblioteca de compatibilidad de Android en suaplicación.
Para empezar, lea la configuración de biblioteca de soporte dedocumentos y establecer el appcompat v7biblioteca (una vezque haya descargado el paquete de biblioteca, siga lasinstrucciones para la Adición de bibliotecas con recursos).
Una vez que tenga la biblioteca de compatibilidad integrada con suproyecto de aplicación:
Actualizar su actividad para que se extienda ActionBarActivity . Porejemplo:
público de clase MainActivity extiende
ActionBarActivity { ... }
En el archivo de manifiesto, o bien actualizarel <application> elemento o individuales <activity>elementos parautilizar uno de los Theme.AppCompat temas.
Por ejemplo:
<Actividad android: tema = "@ style / Theme.AppCompat.Light" ... >
Nota:
Si ha creado un tema personalizado, asegúrese de que utilizauno de los Theme.AppCompat temas como su padre.
Para obtener más información, consulte Aplicar estilos a labarra de acción.
Ahora su actividad incluye la barra de acción cuando se ejecuta en Android 2.1 (nivel de API 7) o más.
Recuerde que debe configurar correctamente el apoyo a nivel de la API de su aplicación en el manifiesto:
Manifiesto ... > <utiliza-sdk android: minSdkVersion = "7" el androide: targetSdkVersion = "18" /> ...
</ manifest>
Adición de botones de acción
La barra de acción le permite añadir botones para los elementos deacción más importantes en relación con el contexto actual de laaplicación. Los que aparecen directamente en la barra de accióncon un icono y / o texto que se conoce como botones de acción.
Las acciones que no caben en la barra de acción o no son losuficientemente importantes están ocultos en el desbordamiento dela acción.
Figura 1.
Una barra de acción con un botón deacción para la búsqueda y eldesbordamiento de la acción, lo querevela las acciones adicionales.
Especificar las acciones en XML.
Todos los botones de acción y otros artículos disponibles en eldesbordamiento de acción se definen en un XMLrecurso demenú.
Para agregar acciones a la barra de acción, crear un nuevoarchivo XML en su proyecto / res / menú guía.
Añadir un <item> elemento de cada artículo que deseaincluir en la barra de acción. Por ejemplo:
res / menu / main_activity_actions.xml
<Menú xmlns: android = "http://schemas.android.com/apk/res/android" >
! <- Búsqueda, deberían aparecer como botón de acción
Configuración, siempre deben estar en el desbordamiento
Iconos de la barra de descarga de acción.
Para adaptarse mejor a los Androidiconografía directrices, debeutilizar los iconos proporcionados en la Barra de acción Icon Pack.
Esto declara que la acción de Búsqueda debe aparecer como unbotón de acción cuando la habitación está disponible en la barra deacción, pero la acción Configuración debe aparecer siempre en eldesborde.
(De manera predeterminada, todas las acciones aparecen en eldesborde, pero es una buena práctica declarar explícitamente susintenciones de diseño para cada acción.)
El icono de atributo requiere un identificador de recurso para una
imagen.
E l nombre que s igue @ est i rab le / debe ser e l nombrede una imagen de mapa de b i ts que haya guardado ensu proyecto / res est i rab le /d i rector io .
Por ejemplo, "@ estirable / ic_act ion_search" seref iere a ic_act ion_search.png .
As imismo, e l t í tu lo at r ibuto ut i l i za un recurso decadena que se def ine por un arch ivo XML en suproyecto / va lores res / d i rector io, como se d iscuteen La construcc ión de una inter faz de usuar io senc i l l a .
Nota:
Al crear iconos y otras imágenes de mapa de bits para suaplicación, es importante que usted proporciona múltiplesversiones que están cada uno optimizado para una densidadde pantalla diferente.
Esto se discute más en la lección sobre el apoyo a diferentespantallas.
Si su apl icac ión está ut i l i zando la b ib l ioteca
de soporte para la compat ib i l idad con
vers iones tan bajas como Andro id 2.1,
e l showAsAct ion atr ibuto no está d isponib le
en el android: espacio de nombres.
En lugar de este atr ibuto es proporc ionada por la
Bib l ioteca Soporte y debe def in i r su prop io
espacio de nombres XML y el uso de ese espacio
de nombres como pref i jo de atr ibuto.
(Un espacio de nombres XML personal izado sedebe basar en el nombre de la ap l icac ión, peropuede ser cualquier nombre que desee y sólo sepuede acceder dentro del ámbito del arch ivo enel que se declara.)
Por ejemplo.res / menu / ma in_ac t i v i ty_ac t ions .xml
<menu xmlns:andro id =
"h t tp : / / schemas .andro id . com/ apk/ res /andro id "
xmlns:yourapp =
"http://schemas.andro id .com/ apk/res-auto" >
<! - - Search , debe aparecer como botón de acc ión - ->
< i tem andro id : id = "@+id/ac t ion_search "
andro id : i con = "@drawab le / i c_ac t ion_search "
andro id : t i t l e = "@st r ing/ac t ion_search "
yourapp:showAsAct ion = " i fRoom" />
. . .
</menu>
Agregue las acciones de la barra de acción.
Para colocar los elementos de menú en la barra de acción, poner en práctica el onCreateOptionsMenu () método de devolución de llamada en su actividad para inflar el recurso de menú en el dado Menu objeto.
Por ejemplo
@ Over r ide
púb l i ca boo lean onCrea teOpt ionsMenu ( Menu menu ) {
/ / In f l a r l os e lementos de menú para su uso en l a
acc ión bar
MenuIn f l a te r in f l a te r = getMenuIn f l a te r ( ) ;
i n f l a te r . i n f l a te ( R . menu . ma in_ac t i v i ty_ac t ions ,
menu ) ;
re tu rn super . onCreateOpt ionsMenu ( menu ) ;
}
Responder a los botones de acción.
Cuando e l usuar io pulsa uno de los botones de acc ión
u otro e lemento en e l desbordamiento de la acc ión, e l
s istema l lama de su act iv idad onOpt ionsItemSelected
() método de devoluc ión de l lamada .
En la implementac ión de este método, l lame GetItemID () sobre la propuesta MenuItem para determinar qué e lemento se ha pulsado e l ID devuelto coinc ide con e l va lor dec larado en la correspondiente <item> del e lemento android: id atr ibuto.
@ Override pública boolean onOptionsItemSelected ( MenuItem elemento) {
prensas / / manipulador de la barra de acción items switch ( item . getItemId ()) {
case R . id . action_search : openSearch (); return true ;
case R . id . action_settings : openSettings (); return true ;
default : return super . onOptionsItemSelected ( item );
} }
Añadir el Botón de bajo nivel Actividades.
Figura 4. El Up botón en Gmail.
Todas las pantallas en su aplicación que no son la entrada principal de su aplicación (actividades que no son de la pantalla "home") deben ofrecer al usuario una forma de navegar a la pantalla de matriz lógica en la jerarquía de la aplicación pulsando el Up botón de la acción bar.
Cuando se ejecuta en Andro id 4.1 (n ive l de API 16) omás alta, o cuando se ut i l i za Act ionBarAct iv i ty de labib l ioteca de soporte, real izando hasta la navegac ións implemente requiere que se declara la act iv idad delos padres en el arch ivo de mani f iesto y se habi l i ta e lUp botón de la barra de acc ión.
Por ejemplo<Aplicación ... >
... <- La actividad principal / home (que no
tiene actividad de los padres) -> <actividad
android: nombre = "com.example.myfirstapp.MainActivity" ... >
... </ actividad> <- Un niño de la actividad principal
Actividad de Padres meta-datos para apoyar 4.0 e inferiores
así es como se puede declarar el padre de una actividad en el
manifiesto:
Luego que el icono de la aplicación que el Up botón llamando setDisplayHomeAsUpEnabled ():
@Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_displaymessage );
getSupportActionBar (). setDisplayHomeAsUpEnabled ( true
);
// Si su minSdkVersion es 11 o superior, en lugar de usar:
/ / getActionBar () setDisplayHomeAsUpEnabled (true);.
}
Debido a que el s istema sabe ahora MainAct iv i ty es
la act iv idad pr inc ipa l para Disp layMessageAct iv i ty ,
cuando el usuar io pu lsa e l Up botón, e l s istema se
desplaza a la act iv idad de los padres según el
caso-que nonecesi ta para manejar e l hasta e l
evento del botón.
El estilo de la barra de acción.
La barra de acc ión ofrece a los usuar ios una manera
fami l i a r y predec ib le para rea l i zar acc iones y navegar
por su ap l i cac ión, pero eso no qu iere dec i r que t iene
que ser exactamente la misma que lo hace en otras
ap l i cac iones .
Si qu ieres est i l i zar la barra de acc ión para a justarse
mejor a la marca de l producto, puede hacer lo fác i lmente
ut i l i zando Andro id de est i l o y tema recursos .
Android incluye algunos temas incorporados en actividades
que incluyen "oscuro" o "light" estilos de barra de acción.
También puede ampliar estos temas para personalizar aún
más el aspecto de la barra de acción.
Nota:
Si está ut i l i zando la b ib l ioteca API de Apoyo a la
barra de acc ión, entonces debe usar (o anular)
laTheme.AppCompat fami l ia de est i los (en lugar
de la Theme.Holo fami l ia, d isponib les en el n ive l
de API 11 y super ior) .
De es te modo, cada prop iedad de es t i l o que se dec la ra
debe ser dec la rado en dos ocas iones : una vez u t i l i zando las
prop iedades de la p la ta fo rma de es t i l o
(e l andro ide : prop iedades ) y una vez con e l es t i l o de las
prop iedades inc lu idas en la b ib l i o teca de sopor te
( los appcompat .R .a t t r p rop iedades de l con tex to para es tas
prop iedades es en rea l i dad su ap l i cac ión) .
Vea los e jemp los a con t inuac ión para obtener más deta l l es .
Utilice un Tema Android.
Andro id inc luye dos temas de las act iv idades in i c ia les
que determinan e l co lor de la barra de acc ión:
Theme.Ho lo para un tema de "oscuro" .
Theme.Ho lo.L ight para un tema de la " luz" .
Puede ap l i car es tos temas a la tota l idad de su ap l i cac ión
o para act iv idades ind iv idua les que dec la ró en su arch ivo
de man i f i es to con e l andro ide: tema atr ibuto para
la <app l i cat ion> elemento o
ind iv idua les <act iv i ty> e lementos .
Por ejemplo:
<Aplicación android: tema = "@ android: style / Theme.Holo.Light" ... />
También puede utilizar una barra de acción oscura, mientras que el
resto de la actividad utiliza el esquema de color de la luz por la que se
declara laTheme.Holo.Light.DarkActionBar tema.
Cuando se utiliza la biblioteca de soporte, debe utilizar en su lugar
los Theme.AppCompat temas.
Theme.AppCompat para el tema "oscuro".
Theme.AppCompat.Light para el tema de la "luz".
Theme.AppCompat.Light.DarkActionBar para el tema de la luz con una
barra de acción oscura.
Asegúrese de que utiliza iconos de la barra de acción que
contrastan adecuadamente con el color de tu barra de acción.
Para ayudarle, la Barra de acción Icon Pack incluye iconos de
acción estándar para el uso con la luz Holo Holo y barra de
acción oscura.
Personaliza el fondo.
Para cambiar el fondo barra de acción, crear un tema
personalizado para su actividad que anula
elactionBarStyle propiedad.
Esta propiedad apunta a otro estilo en el que se puede
reemplazar el fondo propiedad para especificar un recurso
estirable para el fondo de la barra de acción.
Para Android 3.0 y superiores.
Cuando el apoyo a Android 3.0 y superiores, se puede definir el fondo de la barra de acción de esta manera:
r e s / v a l o r e s / t h e m e s . x m l
< ? x m l v e r s i o n = " 1 . 0 " c o d i f i c a c i ó n = " U T F - 8 " >
< r e s o u r c e s >
< - e l t e m a a p l i c a d o a l a a p l i c a c i ó n o l a a c t i v i d a d - >
< s t y l e n o m b r e = " C u s t o m A c t i o n B a r T h e m e "
p a d r e = " @ a n d r o i d : e s t i l o / T h e m e . H o l o . L i g h t . D a r k A c t i o n B a r "
>
< n o m b r e d e e l e m e n t o = " a n d r o i d : a c t i o n B a r S t y l e " > @ e s t i l o /
M y A c t i o n B a r < / e l e m e n t o >
< / s t y l e >
! < - B a r r a d e a c c i o n e s e s t i l o s - >
< s t y l e n o m b r e = " " M y A c t i o n B a r
p a d r e = " @ a n d r o i d : s t y l e /
W i d g e t . H o l o . L i g h t . A c t i o n B a r. S o l i d . I n v e r s e " >
< n o m b r e d e e l e m e n t o = " a n d r o i d : F o n d o " > @ e s t i r a b l e /
a c t i o n b a r _ b a c k g r o u n d < / e l e m e n t o >
< / s t y l e >
< / r e s o u r c e s >
A continuación, aplicar el tema a toda la
aplicación o actividades individuales.
<Aplicación android: tema = "@ style / CustomActionBarTheme" ... />
Para Android 2.1 y superior.
Cuando se utiliza la biblioteca de soporte, el mismo tema que el anterior lugar debe tener este aspecto:
• r e s / v a l o r e s / t h e m e s . x m l
• < ? x m l v e r s i o n = " 1 . 0 " c o d i f i c a c i ó n = " U T F - 8 " >
< r e s o u r c e s >
< - e l t e m a a p l i c a d o a l a a p l i c a c i ó n o l a a c t i v i d a d - >
< s t y l e n o m b r e = " C u s t o m A c t i o n B a r T h e m e "
p a d r e = " @ s t y l e / T e m a . A p p C o m p a t . L i g h t . D a r k A c t i o n B a r " >
< n o m b r e d e e l e m e n t o = " a n d r o i d : a c t i o n B a r S t y l e " > @ e s t i l o / M y A c t i o n B a r < / e l e m e n t o >
! < - c o m p a t i b i l i d a d b i b l i o t e c a S o p o r t e - >
< n o m b r e d e e l e m e n t o = " a c t i o n B a r S t y l e " > @ e s t i l o / M y A c t i o n B a r < / a r t í c u l o >
< / s t y l e >
< - B a r r a d e a c c i o n e s e s t i l o s - > !
< s t y l e n o m b r e = " M y A c t i o n B a r "
p a d r e = " @ s t y l e / W i d g e t . A p p C o m p a t L i g h t . A c t i o n B a r . S o l i d . I n v e r s e . " >
< n o m b r e d e e l e m e n t o = " a n d r o i d : F o n d o " > @ e s t i r a b l e / a c t i o n b a r _ b a c k g r o u n d < /
e l e m e n t o >
< - S o p o r t e b i b l i o t e c a d e c o m p a t i b i l i d a d - >
< n o m b r e d e e l e m e n t o = " b a c k g r o u n d " > @ e s t i r a b l e / a c t i o n b a r _ b a c k g r o u n d < / e l e m e n t o >
< / s t y l e >
< / r e s o u r c e s >
A continuación, aplicar el tema a toda laaplicación o actividades individuales.
<Aplicación android: tema = "@ style / CustomActionBarTheme" ... />
Personaliza el color de texto
Para modi f i car e l co lor de l texto en la barra de acc ión, es
necesar io reemplazar las prop iedades por separado para
cada e lemento de texto:
Tí tu lo de la barra de acc ión: Crear un est i l o
persona l i zado que espec i f i ca e l textCo lor prop iedad y
espec i f i car que e l est i l o para e l T i t l eTextSty le prop iedad
en su aduana act ionBarSty le .
Nota
E l est i l o persona l i zado ap l i cado T i t l eTextSty le debe
ut i l i zarTextAppearance.Ho lo.Widget .Act ionBar.T i t l e co
mo e l est i l o de los padres.
Lengüetas de la barra de acc ión:
Ignorar act ionBarTabTextSty le en su tema de la
act iv idad.
Botones de acc ión: Ignorar act ionMenuTextCo lor en
su tema de la act iv idad.
Para Android 3.0 y superiores
Cuando el apoyo a Andro id 3.0 y super iores, e l
arch ivo XML de est i lo puede tener este aspecto:
res / valores / themes.xml
<? xml version = "1.0" codificación = "UTF-8" >
<resources>
<- el tema aplicado a la aplicación o la actividad ->
<style nombre = "CustomActionBarTheme"
padre = "@ style / Tema. Holo " >
< nombre de elemento = "android: actionBarStyle" > @ estilo / MyActionBar </ elemento >
< nombre de elemento = "android: actionBarTabTextStyle" > @ estilo / MyActionBarTabText </ elemento >
< nombre de elemento = "android: actionMenuTextColor" > @ colores / actionbar_text </ elemento >
</ style>
<- - Barra de acciones estilos!>
<style nombre = "MyActionBar"
padre = "@ style / Widget.Holo.ActionBar" >
< nombre del elemento = "android: TitleTextStyle" > @ estilo / MyActionBarTitleText </ elemento >
</ style>
<- Barra de acciones texto del título ->
<style nombre = "MyActionBarTitleText"
padre = "@ style / TextAppearance.Holo.Widget.ActionBar.Title" >
< nombre de elemento = "android: textColor" > @ de color / actionbar_text </ elemento >
</ style>
! <- estilos de texto pestañas Barra de acciones ->
<style nombre = "MyActionBarTabText"
padre = "@ style / Widget.Holo.ActionBar.TabText" >
< nombre de elemento = "android: textColor" > @ de color / actionbar_text </ elemento >
</ style>
</ resources>
Para Android 2.1 y superior .
Cuando se ut i l i za e l soporte para b ib l ioteca, e l
arch ivo XML de est i lo puede tener este aspecto:
res / valores / themes.xml
<? xml version = "1.0" codificación = "UTF-8" > <resources>
<- el tema aplicado a la aplicación o la actividad -> <style nombre = "CustomActionBarTheme"
padre = "@ style / Tema. AppCompat " > < nombre de elemento = "android: actionBarStyle" > @ estilo / MyActionBar </ elemento > < nombre de elemento = "android: actionBarTabTextStyle" > @ estilo / MyActionBarTabText </ elemento > < nombre de elemento = "android: actionMenuTextColor" > @ colores / actionbar_text </ elemento >
<- Soporte biblioteca de compatibilidad -> < nombre del elemento = "actionBarStyle" > @ estilo / MyActionBar </ elemento > < nombre del elemento = "actionBarTabTextStyle" > @ estilo / MyActionBarTabText </ elemento > < nombre de elemento = "actionMenuTextColor" > @ de color / actionbar_text </ elemento >
</ style>
<- Barra de acciones estilos -> <style nombre = "MyActionBar"
padre = ". @ style / Widget AppCompat . Barra de acciones " > < artículo nombre = "android: TitleTextStyle" > @ estilo / MyActionBarTitleText </ elemento >
! <- Soporte biblioteca de compatibilidad -> < nombre de elemento = "TitleTextStyle" > @ estilo / MyActionBarTitleText </ elemento >
</ style>
! <- texto de título Barra de acciones
nombre = "android: textColor" > @ de color / actionbar_text </ elemento > ! <- La propiedad textColor es compatible hacia atrás con la Biblioteca Soporte ->
</ style>
<- texto pestañas Barra de acciones ->! <style nombre = "MyActionBarTabText"
padre = "@ style / Widget. AppCompat ActionBar.TabText. " > < nombre de elemento = "android: textColor" > @ de color / actionbar_text </ elemento > ! <- La propiedad textColor es compatible hacia atrás con el Soporte Biblioteca ->
</ style> </ resources>
Personalizar el indicador Tab.
Para cambiar e l ind i cador que se ut i l i za para las f i chas
de navegac ión, crear un tema de act iv idad que anu la
e l act ionBarTabSty le prop iedad. Esta prop iedad apunta
a otro recurso de est i l o en e l que se reemplaza
e l fondo prop iedad que debe espec i f i car un estado de
la l i s ta est i rab le .
Nota.
Un estado- l i s t d ibujab le es importante para que la
f i cha se lecc ionada actua lmente ind i ca su estado con
un fondo d i ferente a las otras f i chas . Para obtener
más in formac ión acerca de cómo crear un recurso
est i rab le que maneja var ios estados de l botón, lea
la L i s ta Estata l documentac ión .
Nota.
Un estado- l i s t d ibujab le es importante para que la f i cha
se lecc ionada actua lmente ind i ca su estado con un fondo
d i ferente a las otras f i chas . Para obtener más
in formac ión acerca de cómo crear un recurso est i rab le
que maneja var ios estados de l botón, lea la L i s ta
Estata l documentac ión .
Por ejemplo, aquí hay un dibujable estado l ista
que dec lara una imagen especí f ica de fondo para
var ios estados di ferentes de una f icha de la barra
de acc ión:
r e s / e s t i r a b l e / a c t i o n b a r _ t a b _ i n d i c a t o r. x m l
< ? x m l
U N I D O S C U A N D O b o t ó n e s t á s i n p u l s a r - >
< - ! E s t a d o s n o f o c a l i z a d o s
E s t a d o s F o c u s e d ( c o m o c u a n d o s e e n f o c a c o n u n d - p a d o e l c u r s o r d e l
m o u s e )
U n i d o s c u a n d o s e p r e s i o n a e l b o t ó n - >
< - ! E s t a d o s n o f o c a l i z a d o s
E s t a d o s F o c u s e d ( c o m o c u a n d o s e e n f o c a c o n u n d - p a d o el cursor del mouse)
Para Android 3.0 y superiores
Cuando e l apoyo a Andro id 3.0 y super iores , e l arch ivo
XML de est i l o puede tener este aspecto:
r e s / v a l o r e s / t h e m e s . x m l
< ? x m l v e r s i o n = " 1 . 0 " c o d i f i c a c i ó n = " U T F - 8 " >
< r e s o u r c e s >
< - e l t e m a a p l i c a d o a l a a p l i c a c i ó n o l a a c t i v i d a d - >
< s t y l e n o m b r e = " C u s t o m A c t i o n B a r T h e m e "
p a d r e = " @ s t y l e / Te m a . H o l o " >
< n o m b r e d e e l e m e n t o = " a n d r o i d : a c t i o n B a r Ta b S t y l e " > @ e s t i l o /
M y A c t i o n B a r Ta b s < / e l e m e n t o >
< / s t y l e >
< - Ta b s a c t i o n b a r e s t i l o s - > !
< s t y l e n o m b r e = " M y A c t i o n B a r Ta b s "
p a d r e = " @ s t y l e / W i d g e t . H o l o . A c t i o n B a r. Ta b V i e w " >
< - i n d i c a d o r d e t a b u l a c i ó n - >
< n o m b r e d e e l e m e n t o = " a n d r o i d : F o n d o " > @ e s t i r a b l e /
a c t i o n b a r _ t a b _ i n d i c a t o r < / e l e m e n t o >
< / s t y l e >
< / r e s o u r c e s >
Para Android 2.1 y superior.
Cuando se ut i l i za e l soporte para bib l ioteca, e l
arch ivo XML de est i lo puede tener este aspecto:
r e s / v a l o r e s / t h e m e s . x m l
< ? x m l v e r s i o n = " 1 . 0 " c o d i f i c a c i ó n = " U T F - 8 " >
< r e s o u r c e s >
< - e l t e m a a p l i c a d o a l a a p l i c a c i ó n o l a a c t i v i d a d - >
< s t y l e n o m b r e = " C u s t o m A c t i o n B a r T h e m e "
p a d r e = " @ s t y l e / T e m a . A p p C o m p a t " >
< n o m b r e d e e l e m e n t o = " a n d r o i d : a c t i o n B a r T a b S t y l e " > @ e s t i l o / M y A c t i o n B a r T a b s
< / e l e m e n t o >
! < - c o m p a t i b i l i d a d b i b l i o t e c a S o p o r t e - >
< n o m b r e d e e l e m e n t o = " a c t i o n B a r T a b S t y l e " > @ e s t i l o / M y A c t i o n B a r T a b s < /
e l e m e n t o >
< / s t y l e >
! < - t a b s a c t i o n b a r e s t i l o s - >
< s t y l e n a m e = " M y A c t i o n B a r T a b s "
p a d r e = " / @ W i d g e t e s t i l o . A p p C o m p a t A c t i o n B a r . T a b V i e w . " >
< - i n d i c a d o r d e t a b u l a c i ó n - >
< n o m b r e d e e l e m e n t o = " a n d r o i d : F o n d o " > @ e s t i r a b l e / a c t i o n b a r _ t a b _ i n d i c a t o r
< / e l e m e n t o >
< - S o p o r t e b i b l i o t e c a d e c o m p a t i b i l i d a d - >
< n o m b r e d e e l e m e n t o = " b a c k g r o u n d " > @ e s t i r a b l e / a c t i o n b a r _ t a b _ i n d i c a t o r < /
e l e m e n t o >
< / s t y l e >
< / r e s o u r c e s >
La superposición de la barra de acción.
Por de fec to, l a bar ra de acc ión aparece en la par te
super io r de la ventana de su act i v i dad , reduc iendo
l ige ramente la can t idad de espac io d i spon ib l e para e l res to
de la d i spos i c ión de su ac t i v idad . S i duran te e l cu rso de la
in te racc ión de l usuar io , que desea ocu l ta r y most ra r l a
bar ra de acc iones , puede hacer lo l l amando h ide ( ) y ( )
mues t ran en la Bar ra de acc iones .S in embargo, es to hace
que su ac t i v idad para vo lver a ca l cu la r y vo lver a d ibu ja r
e l d i seño basado en su nuevo tamaño.
Figura 1
Ba r ra de ac c i ones de l a
ga l e r í a en e l modo de
supe rpos i c i ón .
Para ev i ta r camb ia r e l tamaño de su d i seño cuando las p ie les
bar ra de acc iones y programas , puede act i va r e l modo de
superpos i c ión de la bar ra de acc ión . Cuando es tá en modo de
superpos i c ión , e l d i seño ac t i v idad ut i l i za todo e l espac io
d i spon ib l e , como s i l a bar ra de acc ión no está ah í y e l
s i s tema l l ama la bar ra de acc ión f ren te a su d i spos i c ión .
Es to oscurece a lgunas de la d i spos i c ión en la par te super io r,
pero ahora , cuando la bar ra de acc ión ocu l ta r o aparece , e l
s i s tema no t iene que camb ia r e l tamaño de su d i seño y la
t rans i c ión es per fec ta .
Consejo.
Si desea que su diseño sea parcialmente visible detrás de la
barra de acción, crear un estilo personalizado para la barra de
acción con un fondo parcialmente transparente, como la que se
muestra en la figura 1 Para obtener información sobre cómo
definir el fondo de la barra de acción, leer Styling la barra de
acción .
Activar el modo de superposición.
Para act ivar e l modo de superpos ic ión de la barra
de acc ión, es necesar io crear un tema
personal izado que se ext iende un tema barra de
acc ión existente y establecer e l andro id:
windowAct ionBarOver lay propiedad ala verdadera .
Para Android 3.0 y superiores
Si su minSdkVers ion se estab lece en 11 o mayor, su
tema personal izado debe ut i l izar Theme.Holo tema
(o uno de sus descendientes) como su tema
pr inc ipal .
< r e s o u r c e s >
< - e l t e m a a p l i c a d o a l a a p l i c a c i ó n o l a a c t i v i d a d - >
< s t y l e n o m b r e = " C u s t o m A c t i o n B a r T h e m e "
p a d r e = " @ a n d r o i d : s t y l e / T h e m e . H o l o " >
< n o m b r e d e e l e m e n t o = " a n d r o i d :
w i n d o w A c t i o n B a r O v e r l a y " > v e r d a d e r o < / e l e m e n t o >
< / s t y l e >
< / r e s o u r c e s >
Para Android 2.1 y superior
S i s u a p l i c a c i ó n e s t á u t i l i z a n d o l a b i b l i o t e c a d e s o p o r t e p a r a
l a c o m p a t i b i l i d a d d e l o s d i s p o s i t i v o s q u e e j e c u t a n v e r s i o n e s
a n t e r i o r e s a l a 3 . 0 d e A n d r o i d , e l t e m a p e r s o n a l i z a d o d e b e
u t i l i z a r T h e m e . A p p C o m p a t t e m a ( o u n o d e s u s
d e s c e n d i e n t e s ) c o m o s u t e m a p r i n c i p a l . Po r e j e m p l o :
Por ejemplo.
<resou r ce s>
<- e l t ema ap l i c ado a l a ap l i c a c i ón o l a a c t i v i dad ->
<s ty l e nombre = "Cus t omAc t i onBa rTheme "
pad re = "@ and ro i d : . e s t i l o / Tema AppCompat " >
< nombre de e l emen to = " and ro i d :
w i ndowAc t i onBa rOve r l ay " > ve rdade ro < / e l emen to >
< - ! c ompa t i b i l i d ad b i b l i o t e ca Sopo r t e ->
< nombre de e l emen to = " w i ndowAc t i onBa rOve r l ay " >
ve rdade ro < / e l emen to >
< / s t y l e>
< / r e sou r ce s>
Observe también que este tema inc luye dos
def in ic iones para la windowAct ionBarOver lay est i lo:
una con elandroide: pref i jo y otra s in el la .
E l que t iene e l andro id: pref i jo es para las
vers iones de Andro id que inc luyen el est i lo en la
plataforma y el uno s in e l pref i jo es para las
vers iones anter iores que leen el est i lo de la
Bib l ioteca de Soporte.
Especifique Layout con mejor margen.
C u a n d o l a b a r r a d e a c c i ó n e s t á e n e l m o d o d e s u p e r p o s i c i ó n ,
p u e d e o s c u r e c e r u n p o c o d e s u d i s e ñ o q u e d e b e p e r m a n e c e r
v i s i b l e . P a r a a s e g u r a r s e d e q u e t a l e s a r t í c u l o s s e m a n t i e n e n
p o r d e b a j o d e l a b a r r a d e a c c i ó n e n t o d o m o m e n t o , y a s e a
a g r e g a r m a r g e n o r e l l e n o p a r a l a p a r t e s u p e r i o r d e l a v i s t a
( s ) c o n l a a l t u r a e s p e c i f i c a d a p o r a c t i o n B a r S i z e
Por ejemplo.
<Relat iveLayout xmlns:android =
"http://schemas.android.com/apk/res/android"
android: layout_width = "match_parent"
android: layout_height = "match_parent"
android:paddingTop =
"?android:attr /act ionBarSize" >
. . .
</Relat iveLayout>
Si estás ut i l i zando la b ib l ioteca de compat ib i l idad
de la barra de acc ión, es necesar io e l iminar
el android:pref i jo.
Por ejemplo.
<- Compatibilidad biblioteca Apoyo -->
<RelativeLayout xmlns:android =
"http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:paddingTop = "?attr/actionBarSize" >
...
</RelativeLayout>
En este caso, el ? attr / actionBarSize valor sin el prefijo
funciona en todas las versiones, incluyendo androide 3,0 y
superior.