【问题标题】:Setting the background of a MasterDetailPage to be transparent将 MasterDetailPage 的背景设置为透明
【发布时间】:2018-07-03 14:27:17
【问题描述】:

当我尝试将 Master(MasterDetailPage)的背景颜色设置为透明时,它保持白色。

基本上我想看到的是,详细页面的颜色是通过 Master 显示的。

举例(如果上述情况属实,那么此 MasterDetailPage 的背景颜色将为红色(是的,我知道我可以将背景颜色设置为红色,但我希望它是 透明))

【问题讨论】:

  • 我注意到您的截图效果与官方示例不同。如果我们在 iPad 上运行官方示例,母版页将与详细信息页重叠。效果(推送和压缩详情页)是 iPhone 的。你能分享一些代码吗?

标签: c# ios iphone xamarin xamarin.forms


【解决方案1】:

看到TabletMasterDetailRenderer的documentation后,可以发现我们在PCL中创建的master或者detail页面会添加到_masterController.View_detailController.View上。

因此,当我们将其BackgroundColor 设置为Transparent 时,页面仍将是我们所看到的白色。我们还应该设置_masterController.ViewBackgroundColor

我们可以在渲染器中找到_masterController,设置如下:

public override void ViewWillLayoutSubviews()
{
    base.ViewWillLayoutSubviews();

    var master = ViewControllers[0];
    master.View.BackgroundColor = UIColor.Clear;

    //This is Detail ViewController
    var detail = ViewController.ChildViewControllers[1];
}

MasterDetailPage 创建一个自定义渲染器并将此代码放入其中。

【讨论】:

  • @Bracefor 很高兴它能帮助你。
  • 这似乎不再起作用了。 MasterDetailRenderer.cs 不包含 ViewWillLayoutSubviews()
猜你喜欢
  • 1970-01-01
  • 2021-03-04
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2014-04-05
  • 2020-03-03
  • 1970-01-01
相关资源
最近更新 更多