Xamarin.Android
Xamarin.Android - So erstellen Sie eine Symbolleiste
Suche…
Bemerkungen
Liebes Team,
Ich denke, dass es gut ist, über die offizielle Android-Dokumentation zu erwähnen, in der die Symbolleistensteuerung detailliert erklärt wird:
https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
Es gibt auch interessante Inhalte über die Android.Support.v7-Bibliothek, die im Beispiel verwendet wird:
Fügen Sie der Xamarin.Android-Anwendung eine Symbolleiste hinzu
Zunächst müssen Sie die Bibliothek Xamarin.Android.Support.V7.AppCompat für NuGet hinzufügen: https://www.nuget.org/packages/Xamarin.Android.Support.v7.AppCompat/
Fügen Sie im Ordner "values" unter "Resources" eine neue XML-Datei mit dem Namen "styles.xml" hinzu:
Die Datei "styles.xml" sollte folgenden Code enthalten:
<?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. -->
Im nächsten Schritt fügen Sie dem Ordner "Layout" die Datei "toolbar.axml" hinzu, die die Definition der Symbolleisten-Steuerelemente enthält:
Fügen Sie folgenden Code hinzu, um die Symbolleiste zu definieren:
<?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" />
Öffnen Sie nun die Datei "Main.axml" und fügen Sie den Code unterhalb des schließenden Tags für das erste Layout hinzu. Ihr Code sollte wie folgt aussehen:
<?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>
Jetzt müssen Sie Informationen zu einem Thema hinzufügen, das Ihre App verwendet. Öffnen Sie die Datei "AndroidManifest" und fügen Sie dem Tag "application" Themeninformationen hinzu:
<application android:theme="@style/MyTheme" android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name">
Der letzte Schritt ist das Verbinden der Symbolleiste in der Aktivitätsdatei. Öffnen Sie die Datei "MainActivity.cs". Sie müssen die Ableitung von "Aktivität" in "AppCompatActivity" ändern. Rufen Sie nun den Verweis auf die Symbolleiste ab und legen Sie sie als Standard-Symbolleiste für die Aktivität in der Methode "OnCreate" fest. Sie können auch den Titel definieren:
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = "Hello from Appcompat Toolbar";
Die ganze Methode sollte wie folgt aussehen:
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";
}
Projekt neu erstellen und starten, um das Ergebnis zu sehen: