问题描述
我正在尝试将两个xamarin页面彼此重叠,一个作为主要页面,另一个作为预览,可以根据需要进行扩展。类似于位于NavigationPage内容顶部的Spotify迷你播放器。
我有一个自定义页面渲染器,在其中创建子页面渲染器,将其添加到父级的子视图中然后进行布局,但是...子页面忽略布局,并且始终为全屏显示。
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
var renderer=Platform.GetRenderer((Element as RootPage)?.Mini);
if (renderer == null)
{
renderer= Platform.CreateRendererWithContext(MiniPage,Context);
Platform.SetRenderer(MiniPage,renderer);
}
renderer.View.RemoveFromParent();
_miniView=renderer.View;
AddView(_miniView);
_miniView.Layout(0,Height-400,Width,400);
}
protected override void OnLayout(bool changed,int l,int t,int r,int b)
{
base.OnLayout(changed,l,t,r,b);
_miniView?.Layout(0,Height);
}
此课程在iOS上正常工作...
我尝试嵌入页面而不是视图的唯一原因是,对Platform.CreateRenderer
的调用总是返回一个统一的视图,因为它不在父页面的可视树中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)