各ページのマスター/詳細ページとツールバー項目を備えたアプリがあります。ツールバー項目の重複を避けるために、マスター/詳細ページとマスター ページを NavigationPage.HasNavigationBar="False" に設定しました。Android では正常に機能し、重複はありませんが、iOS では、Order="Secondary" を持つツールバー項目の重複が引き続き発生します。
メニューページ(詳細ページ)はこちら
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:controls="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin"
xmlns:effects="clr-namespace:AppXamarin"
x:Class="AppXamarin.Pages.MenuPage" NavigationPage.HasBackButton="False">
<ContentPage.BackgroundImage>
<OnPlatform Android="exp20181029Artboard46" iOS="{OnIdiom Phone='exp20181029Artboard46',Tablet='Artboard'}"/>
</ContentPage.BackgroundImage>
<ContentPage.ToolbarItems>
<ToolbarItem Name="menuitem1" Order="Secondary" Text="logout" Priority="0" Clicked="MenuItem1_Clicked"/>
<ToolbarItem Order="Primary" Priority="1" Clicked="cart_Clicked" Text="cart" x:Name="cart"/>
<ToolbarItem Order="Primary" Priority="0" Text="search" x:Name="searchbar" Icon="search.png"/>
</ContentPage.ToolbarItems>
マスターのメイン ページ:
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:AppXamarin.Pages"
x:Class="AppXamarin.Pages.MasterMainPage" NavigationPage.HasNavigationBar="False" NavigationPage.HasBackButton="False"
>
<MasterDetailPage.Master>
<local:MasterPage x:Name ="masterPage"/>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<local:MenuPage></local:MenuPage>
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
そしてマスターページ:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AppXamarin.Pages.MasterPage"
NavigationPage.HasNavigationBar="False" NavigationPage.HasBackButton="False" >
<ContentPage.Title>
<OnPlatform Android="Menu" iOS="☰"/>
</ContentPage.Title>
<ContentPage.Icon>
<OnPlatform Android="menu.png"/>
</ContentPage.Icon>
<ContentPage.Content>
<StackLayout>
<Label Text="Welcome to Xamarin.Forms!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
iOS結果はこちら
アンドロイドの結果はこちら
前もって感謝します。