我试图创建一个masterdetailpage,我不太确定,如果我做得对,但抽屉/主人只是看起来很丑。例如,导航栏颜色不显示…:
android - Xamarin MasterDetailPage看起来很丑-LMLPHP
关于如何改进它有什么想法/建议吗?

最佳答案

主详细信息页信息
在我们开始回答之前,让我们回顾一下MasterDetailPage类以及如何在您的示例中配置MasterDetailPage
Xamarin.forms中的MasterDetailPage类需要两个Page属性:
MasterDetailPage.Detail属性需要设置为包含NavigationPage实例的ContentPage
MasterDetailPage.Master属性需要设置为ContentPage实例
示例中的Detail页位于屏幕的右侧。Detail页面是aContentPage内部的一个NavigationPage页面,其中NavigationPage.BarBackgroundColor设置为Color.Black。这个ContentPage里面的NavigationPage设置为ContentPage.BackgroundColor
示例中的Color.Grey页位于屏幕的左侧。它是一个包含MasterContentPage。在不知道代码的情况下,我的猜测是ListView设置为ContentPage.BackgroundColor,而Color.White未设置。
当您选择导航抽屉图标时,将覆盖导航栏。这是因为导航栏在ListView.BackgroundColor页上,而不是Detail页上。
回答你的问题
为什么导航栏的颜色没有显示在Master页面上?
Master页只能是一个Master页,不能在ContentPage页内,因此它没有导航栏(只有NavigationPage页可以有导航栏)。
如何改进用户界面?
首先,确认您使用的是最新版本的xamarin.forms,v2.3.2.127。
网间网操作系统
在ios上,您可以通过设置NavigationPage页的Detail属性并将Padding页的Master属性设置为Master来模拟BackgroundColor页的导航栏颜色,如下所示:

Master = new ContentPage
{
  BackgroundColor = Color.Black,
  Padding = new Thickness(0, Device.OnPlatform(64, 0, 0), 0, 0)
};

安卓
在android上,预期的行为是让Color.Black页面从左侧滑入并覆盖Master页面。要更新android ui,我建议更新以下三项之一:Detail属性、Master.BackgroundColor属性或ListView.BackgroundColor页面列表视图中使用的图标颜色。
如果不希望导航栏向右移动,可以在androidMaster类中扩展FormsApplicationActivity,这将阻止导航栏移动:
MainActivity
此示例显示,当您使用public class MainActivity : Xamarin.Forms.Platform.Android.FormsApplicationActivity时,导航栏不会在Android应用程序上滑动:
https://developer.xamarin.com/samples/xamarin-forms/Navigation/MasterDetailPage/

10-08 03:02