2 回答
TA貢獻1825條經驗 獲得超6個贊
當您想要導航時使用 MasterDetailPage 導航但將菜單保留在側面時,您必須導航更改Detail部分,就像您在替換時所做的那樣Login,ListItemPage但是當您更改整個應用程序頁面時Application.Current.MainPage
我在上面的代碼中看到的其他內容是,您沒有指定Master應該保存菜單項的部分。
根據此處的 Xamarin 文檔,您應該以這種方式定義您的 MasterDetailsPage:
public MainPage()
{
var menuPage = new MenuPage();
Master = menuPage;
Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(ListItemsPage));
menuPage.ListView.ItemSelected += OnMenuItemSelected
}
OnMenuItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as MasterPageItem;
if (item != null) {
Detail = new NavigationPage ((Page)Activator.CreateInstance (item.TargetType));
masterPage.listView.SelectedItem = null;
IsPresented = false;
}
}
但是上面期望您的 MenuPage 將有一個 ListView ,其中每個項目都是一個菜單選項,其中包含顯示菜單選項和導航所需的所有信息。
public class MenuPage : ContentPage
{
public ListView ListView { get { return listView; } }
public MenuPage()
{
Icon = "hamburger.png";
Title = "My great application";
var masterPageItems = new List<MasterPageItem> ();
masterPageItems.Add (new MasterPageItem {
Title = "List Items",
IconSource = "list_items.png",
TargetType = typeof(ContactsPageCS)
});
masterPageItems.Add (new MasterPageItem {
Title = "Deposit",
IconSource = "deposit.png",
TargetType = typeof(TodoListPageCS)
});
..........
}
}
如果您遵循此文檔,您應該會很好。如果仍然有疑問,請回到這里。
希望這可以幫助。-
- 2 回答
- 0 關注
- 241 瀏覽
添加回答
舉報
