Gibt es eine Xamarin.Forms-Methode zum Hinzufügen einer Schaltfläche zur Aktionsleiste/zum Navigationselement (ohne auf plattformspezifischen Code zurückgreifen zu müssen)?Schaltfläche in Aktionsleiste für Xamarin.Forms-Anwendung?
5
A
Antwort
10
Wenn durch Aktionsleiste/Navigations Sie die Navigationsleiste am oberen Rand bedeuten können Sie diese Methode verwenden:
private void ShowToolbar()
{
if (Device.OS == TargetPlatform.iOS)
{
// move layout under the status bar
this.Padding = new Thickness(0, 20, 0, 0);
toolbarItem = new ToolbarItem("Sync", "sync_icon.png",() =>
{
//if (!response)
//{
// response = true;
SyncService();
//}
//else
// return;
}, 0, 0);
ToolbarItems.Add(toolbarItem);
}
if (Device.OS == TargetPlatform.Android)
{
toolbarItem = new ToolbarItem("Sync", "sync_icon.png",() =>
{
//if (!response)
//{
SyncService();
//}
//else
// return;
}, 0, 0);
ToolbarItems.Add(toolbarItem);
}
if (Device.OS == TargetPlatform.WinPhone)
{
toolbarItem = new ToolbarItem("Sync", "sync_icon.png",() =>
{
//if (!response)
//{
// response = true;
SyncService();
//}
//else
// return;
}, 0, 0);
ToolbarItems.Add(toolbarItem);
}
}
0
In MainPage.xaml, können Sie den folgenden Code hinzu.
<ContentPage.ToolbarItems>
<ToolbarItem Text="Click Me!" Icon="iconName.png" Clicked="ToolbarItem_Clicked"/>
</ContentPage.ToolbarItems>
Jetzt in der MainPage.xaml.cs, Click-Handler sollte hinzugefügt werden.
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void ToolbarItem_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new NewPage());
}
}
Damit Navigation auftreten kann der Konstruktor in App.xaml.cs folgenden Code enthalten.
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new MainPage());
}