Cambiar el color de ActionBar – Xamarin
Tengo una pequeña pregunta sobre el ActionBar
en Android. Estoy usando Xamarin Studio para hacer una aplicación y me gustaría cambiar el color de la ActionBar. He mirado lejos y ancho para una manera de cambiar el color pero esto es la única cosa que podría encontrar.
ColorDrawable colorDrawable = new ColorDrawable(Color.ParseColor("#ff0f62ae")); this.ActionBar.SetBackgroundDrawable(colorDrawable);
Pensé que esto funcionaría, pero ahora tengo esta excepción y no puedo entender por qué esto no funciona para mí.
- Mono para Android: ListView Eliminar elementos NotifyDataSet modificado
- Xamarin C # - Android - Impedir que un AlertDialog cierre en PositiveButton haga clic
- Componente inutilizable HockeyApp para Android (tienda de componentes Xamarin)
- ¿Cómo tratar con "$ {applicationid}" en Xamarin?
- MonoDroid: recuperación de excepción no controlada
Esta es la excepción:
Object reference not set to an instance of an object
¿Puede alguien explicarme lo que estoy haciendo mal y tal vez me muestre cómo puedo arreglar esto.
Editar
Después de un par de comentarios he probado esto:
<resources> <style name="AppTheme" parent="android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">@color/</item> <item name="andriod:titleTextStyle">@style/MyActionBarTextAppearance</item> </style> <style name="MyActionBarTextAppearance" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/default_white</item> </style> </resources>
¿Cómo puedo agregar un color personalizado, y cómo asignar esto a mi barra de acción
- Mono para Android, el campo de entrada de WebView filechooser no funciona
- Objeto refrence no establecido en una instancia de un objeto Cuando creo nueva aplicación de Android (Visual Studio)
- Monodroid - el nuevo proyecto de plantilla sin tocar no se puede ejecutar en el emulador de Android
- ¿Cómo funciona Mono para Android?
- Instalación de Xamarin Mono para Android
- No se puede emitir desde el tipo de origen al tipo de destino (JNIEnv.GetArray <Java.Lang.Object> (pudis.Handle);)
- MonoDroid, interfaz de usuario común de MonoTouch
- ¿Es posible crear una biblioteca compartida multiplataforma con MonoDroid y MonoTouch que pueden ser utilizados por desarrolladores que no sean Mono?
Lo hice de esta manera. Pruebe esto y hágamelo saber si funciona por favor,
<style name="AppTheme" parent="android:Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBarTheme</item> </style> <style name="ActionBarTheme" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@color/color_action_bar</item> </style> "
Y en colors.xml o añadir una variable de color en strings.xml, agregue el color deseado para la barra de acción
<color name="color_action_bar">#3450A3</color>
Y mencionar el tema en el archivo de manifiesto
<application android:theme="@style/AppTheme" >
Try this: <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">#f00</item> <item name="android:titleTextStyle">@style/MyTextAppearance</item> </style> <style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">#ffffff</item> </style>
Esto funcionó para mí
<color name="actionBarBackgroundColor">#2C3E50</color> <color name="actionBarTextColor">#FFFFFF</color> <style name="MyAppTheme"/> <style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light"> <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item> </style> <style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.DeviceDefault.Light.ActionBar"> <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> <item name="android:background">@color/actionBarBackgroundColor</item> </style> <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title"> <item name="android:textColor">@color/actionBarTextColor</item> </style>
Como explicación sobre la respuesta de @ SID, para diseñar tu barra de acción debes anular todo el tema de tu aplicación.
Si no existen, agregue los archivos Styles.XML
y Colors.XML
en la carpeta Resource>values
y edítelos como se Colors.XML
continuación:
Styles.XML:
<?xml version="1.0" encoding="utf-8" ?> <resources> <style name="AppTheme" parent="android:Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBarTheme</item> </style> <style name="ActionBarTheme" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@color/DarkBlue</item> </style> </resources>
Colors.XML:
<?xml version="1.0" encoding="utf-8" ?> <resources> <color name="DarkBlue">#007acc</color> </resources>
Ahora navegue a Properties>AndroidManifest.xml
y cambie la etiqueta <application>
para hacer referencia a su tema personalizado:
<application android:theme="@style/AppTheme" ... > </application>
ACTUALIZACIÓN:
Si está dispuesto a utilizar AppCompat
y ActionBarActivity
entonces ya no necesitará el ActionBarTheme
en Styles.XML
así que aquí es como se verá Styles.XML
:
<?xml version="1.0" encoding="utf-8" ?> <resources> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/LightBlue</item> <item name="colorPrimaryDark">@color/DarkBlue</item> <item name="colorAccent">@color/Pink</item> </style> </resources>
Y los Colors.XML
:
<?xml version="1.0" encoding="utf-8" ?> <resources> <color name="DarkBlue">#0052cc</color> <color name="Pink">#ff1ac6</color> <color name="LightBlue">#1a75ff</color> </resources>
- Escuchar gestos en un widget de aplicación
- Cómo agregar dos archivos google-services.json en el mismo proyecto