2 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
當(dāng)您想要導(dǎo)航時(shí)使用 MasterDetailPage 導(dǎo)航但將菜單保留在側(cè)面時(shí),您必須導(dǎo)航更改Detail部分,就像您在替換時(shí)所做的那樣Login,ListItemPage但是當(dāng)您更改整個(gè)應(yīng)用程序頁面時(shí)Application.Current.MainPage
我在上面的代碼中看到的其他內(nèi)容是,您沒有指定Master應(yīng)該保存菜單項(xiàng)的部分。
根據(jù)此處的 Xamarin 文檔,您應(yīng)該以這種方式定義您的 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 將有一個(gè) ListView ,其中每個(gè)項(xiàng)目都是一個(gè)菜單選項(xiàng),其中包含顯示菜單選項(xiàng)和導(dǎo)航所需的所有信息。
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)
});
..........
}
}
如果您遵循此文檔,您應(yīng)該會(huì)很好。如果仍然有疑問,請(qǐng)回到這里。
希望這可以幫助。-

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
我有同樣的問題,問題是標(biāo)題不見了。
在內(nèi)容頁面中添加標(biāo)題后,一切都像魅力一樣......
- 2 回答
- 0 關(guān)注
- 224 瀏覽
添加回答
舉報(bào)