Tema personalizado en Android / Xamarin project – center Título del texto de Action Bar
Tengo tema personalizado en Android / proyecto Xamarin. Lo que no puedo hacer es:
- Fije el encabezado al centro (y quite el icono)
- Agregar el botón del menú con la opción del menú (por ejemplo ajustes del botón)
He intentado con la propiedad de los ajustes -> gravedad al centro pero no trabajó.
- Xamarin: No se encontró ningún recurso que coincida con los nombres (AppCompat)
- NotSupportedException No se pudo activar JNI Handle - MvvmCross
- Xamarin Android Player no puede ejecutar emuladores de API 21 o superior
- Xamarin Visual Studio IOS Desarrollo Sin una Mac?
- El enlace MvvmCross Fragment no funciona
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="AgrippaTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <!-- ActionBar styles --> <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@color/main_orange_color</item> <item name="android:titleTextStyle">@style/AgrippaTheme.TitleTextStyle</item> </style> <!-- ActionBar TitleTextStyle styles --> <style name="AgrippaTheme.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/main_black_color</item> <item name="android:gravity">center_vertical|center_horizontal</item> </style> </resources>
- ¿Cómo poner diferentes elementos infantiles personalizados en elementos de lista ampliable?
- ¿Hay posibilidad de asignar un valor a Android Button en Xamarin?
- Uso de la memoria de aplicaciones Android de Xamarin
- Error de implementación de Visual Studio 2015 Xamarin sin ningún mensaje de error
- Mejor opción para la suscripción de eventos
- Quitar icono de la barra de acción xamarin
- Xamarin Android Finalizer no se llama al salir de la actividad para ir a otra Actividad
- ¿Cuál es la contraparte de iOS 'QLPreviewController o UIDocumentInteractionController en Android?
Usted tendrá que hacerlo programáticamente a través de un método estático dentro de una clase estática
public static void SetActionbarText(Activity activity, string text) { // Setting custom view enable activity.ActionBar.SetHomeButtonEnabled(false); activity.ActionBar.SetIcon(Android.Resource.Color.Transparent); activity.ActionBar.SetDisplayShowCustomEnabled(true); activity.ActionBar.Title = ""; LinearLayout linearLayout = new LinearLayout(activity); linearLayout.SetGravity(GravityFlags.CenterVertical); LinearLayout.LayoutParams textViewParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent); textViewParameters.RightMargin = (int)(40 * activity.Resources.DisplayMetrics.Density); TextView modelTitle = new TextView(activity); modelTitle.Text = text; modelTitle.Gravity = GravityFlags.Center; linearLayout.AddView(modelTitle,textViewParameters); ActionBar.LayoutParams actionbarParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent,ActionBar.LayoutParams.MatchParent); activity.ActionBar.SetCustomView(linearLayout, actionbarParams); }
Observe que tiene que jugar con la dimensión del margen derecho del texto. Este margen debe ser igual que el ancho del icono de inicio (está allí pero es invisible).
Puede agregar el icono derecho para añadirlo a Menu.xml e inflar este archivo xml en el método OnCreateOptionsMenu de su actividad.
También puede hacerlo utilizando los archivos xml de menú y estilos. Para agregar el botón de configuración, por ejemplo, sólo puede agregar un elemento en el archivo de menú que define el menú de la interfaz de usuario que se muestra en la imagen. Hay algunos iconos predefinidos, como el que he usado (ic_menu_preferences), pero puedes usar otro o usar una imagen en su lugar. Por lo tanto, en, vamos a decir agrippa_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
[…]
<item android:id="@+id/menu_item_settings" android:title="@string/settings" android:icon="@android:drawable/ic_menu_preferences" android:showAsAction="ifRoom|withText" app:showAsAction="ifRoom|withText"/>
[…]
Para desplazarse por el icono, puede agregar esta línea al estilo que define esta interfaz de usuario, o crear una nueva si no la tiene ya creada. Por lo tanto, en styles.xml:
<style name="AgrippaTheme" parent="android:Theme.Holo.Light"> <!--pre v11--> <item name="logo">@color/transparent</item> <!--post v11--> <item name="android:logo">@color/transparent</item> <!-- Customize your theme here. --> </style>
Por último, en referencia a poner el título en el medio, no he encontrado otra manera que la definición de una barra de acción personalizada xml y establecerlo de forma programática como se dice aquí: Centro Alinear el título en la barra de acción utilizando estilos en android. :. Si alguien sabe cómo hacerlo usando sólo estilos será bienvenido.
- Android xml dibujable imagen en pantalla completa de fondo
- Cómo proporcionar contenido para Intent.ACTION_GET_CONTENT