Xamarin.Android
Xamarin.Android - Cómo crear una barra de herramientas
Buscar..
Observaciones
Querido equipo,
Creo que es bueno mencionar sobre la documentación oficial de Android donde el control de la barra de herramientas se explica en detalle:
https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
También hay contenido interesado en la biblioteca de Android.Support.v7 utilizada en el ejemplo:
Añadir barra de herramientas a la aplicación Xamarin.Android
En primer lugar, debe agregar la biblioteca Xamarin.Android.Support.V7.AppCompat para NuGet: https://www.nuget.org/packages/Xamarin.Android.Support.v7.AppCompat/
En la carpeta de "valores" en "Recursos", agregue un nuevo archivo xml llamado "styles.xml":
El archivo "styles.xml" debe contener el siguiente código:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<!-- Base theme applied no matter what API -->
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<!--We will be using the toolbar so no need to show ActionBar-->
<item name="windowActionBar">false</item>
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">#2196F3</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">#1976D2</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">#FF4081</item>
<item name="colorControlHighlight">#FF4081</item>
<!-- You can also set colorControlNormal, colorControlActivated
colorControlHighlight and colorSwitchThumbNormal. -->
El siguiente paso es agregar el archivo "toolbar.axml" que contiene la definición de control de la barra de herramientas a la carpeta "diseño":
Agregue el siguiente código para definir la barra de herramientas:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Ahora, abra el archivo "Main.axml" y agregue el siguiente código justo debajo de la etiqueta de cierre para el primer diseño. Su código debe verse como a continuación:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include android:id="@+id/toolbar" layout="@layout/toolbar" />
</LinearLayout>
Ahora tienes que agregar información sobre el tema que usa tu aplicación. Abra el archivo "AndroidManifest" y agregue información del tema a la etiqueta de "aplicación":
<application android:theme="@style/MyTheme" android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name">
El último paso es conectar la barra de herramientas en el archivo de actividad. Abra el archivo "MainActivity.cs". Tiene que cambiar la derivación de "Actividad" a "AppCompatActivity". Ahora obtenga la referencia a la barra de herramientas y configúrela como barra de herramientas predeterminada para la actividad en el método "OnCreate". También puedes definir el título:
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = "Hello from Appcompat Toolbar";
Todo el método debe verse como a continuación:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = "Hello from Appcompat Toolbar";
}
Reconstruye el proyecto y ejecútalo para ver el resultado: