xamarin表单android自定义渲染器:覆盖两页

问题描述

我正在尝试将两个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 (将#修改为@)