我不確定這是否可以使用現有的工具欄實現,但我有類似的要求,我不知道如何實現在導航頁面上使用Xamarin表單工具欄。因此我決定使用模態頁面,並在後面的代碼中禁用導航頁面,並使用下面的代碼行。
NavigationPage.SetHasNavigationBar(this, false);
我使用XAML和我創建了absolutelayout自定義導航如下
<AbsoluteLayout x:Name="slToolbar" Grid.Row="0" >
<Button x:Name="Cancel" BackgroundColor="#ADD8E6" Image="cancel.png" Command="{Binding CancelClick}" AbsoluteLayout.LayoutFlags="PositionProportional">
<AbsoluteLayout.LayoutBounds>
<OnPlatform x:TypeArguments="Rectangle" iOS="0, .5, 36, 36" Android="0, .5, 36, 36" WinPhone="0, .5, 50, 50" />
</AbsoluteLayout.LayoutBounds>
</Button>
<StackLayout Orientation="Horizontal" AbsoluteLayout.LayoutFlags="PositionProportional">
<AbsoluteLayout.LayoutBounds>
<OnPlatform x:TypeArguments="Rectangle" iOS="1,.5,110,50" Android="1,.5,50,36" WinPhone="1,.5,110,50" />
</AbsoluteLayout.LayoutBounds>
<ContentView >
<OnPlatform x:TypeArguments="View">
<OnPlatform.iOS>
<Button x:Name="NewIOS" BackgroundColor="#ADD8E6" Image="ic_add.png" Command="{Binding AddNew}" ></Button>
</OnPlatform.iOS>
<OnPlatform.WinPhone>
<Button x:Name="NewWP" BackgroundColor="#ADD8E6" Command="{Binding AddNew}" Image="ic_add.png"/>
</OnPlatform.WinPhone>
</OnPlatform>
</ContentView>
<Button x:Name="btnSave" BackgroundColor="#ADD8E6" Image="check.png" Command="{Binding SaveClick}" HorizontalOptions="End" ></Button>
</StackLayout>
</AbsoluteLayout>
這個代碼將產生類似下面。我有角落裏的圖標,但它們肯定可以放在任何地方。我用取消圖標而不是後退按鈕。當然,在這種情況下,你需要處理後退按鈕(取消按鈕)點擊你自己。下面的截圖是從UWP應用程序,但在Android和IOS我得到類似的結果。
我認爲你的問題爲android。它似乎不可能,除非你禁用工具欄並創建你自定義的。我有類似的要求,我最終做自定義工具欄 – batmaci
@ batmaci你可以給我的指示或參考,因爲我從來沒有做過自定義渲染? –
我不是指自定義渲染器,而是自定義工具欄。我給你作爲答案。 – batmaci