情况: 使用Xamarin Forms和MasterDetail组件构建应用程序。
问题: 如何基于PageRender在Android上呈现特定页面?并保留抽屉?
修改
public class MasterBacASable : MasterDetailPage
{
public MasterBacASable ()
{
Icon = null;
Title = "The title";
Detail = (new FirstPage ());
Master = new AppMenuPage ();
}
}
[assembly:ExportRenderer(typeof(BacASable.FirstPage),typeof(BacASable.Droid.FirstPageContentRennderer))]
命名空间BacASable.Droid
{
public class FirstPageContentRennderer:PageRenderer
{
public FirstPageContentRennderer()
{
}
protected override void OnElementChanged (ElementChangedEventArgs<Page> e)
{
base.OnElementChanged (e);
var activity = this.Context as Activity;
var v = activity.LayoutInflater.Inflate (Resource.Layout.AndroidView,this,false);
AddView (v);
}
}
}
答案 0 :(得分:0)
关注Xamarin.Forms Master-Detail Documentation
基本概念如下
public class MainPageCS : MasterDetailPage
{
MasterPageCS masterPage;
public MainPageCS ()
{
masterPage = new MasterPageCS ();
Master = masterPage;
Detail = new NavigationPage (new ContactsPageCS ());
...
}
}
您的Master
是您的抽屉,Detail
是页面(ContentPage,TabbedPage,NavigationPage,CustomPageRenderer)。
因此,每次要显示不同的页面时,都会设置Detail
属性
Detail = new MyContentPage();
答案 1 :(得分:0)
我只是忘记在渲染器中覆盖OnLayout。 谢谢你们。