我正在以xamarin形式使用MasterDetailPage。我想要的是,当用户打开母版页时,状态栏和母版详细信息页之间应该显示一些阴影。看起来母版页在状态栏下方,并且那里显示一些阴影。
如何设置状态栏和主详细信息页面的主页面。
答案 0 :(得分:1)
对于iOS,您可以拥有CustomRenderer:
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using UIKit;
using ShadowNavBarSample.iOS;
using CoreGraphics;
[assembly: ExportRenderer(typeof(NavigationPage), typeof(ShadowNavigationBarRenderer))]
namespace ShadowNavBarSample.iOS
{
public class ShadowNavigationBarRenderer : NavigationRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (this.Element == null) return;
NavigationBar.Layer.ShadowColor = UIColor.Gray.CGColor;
NavigationBar.Layer.ShadowOffset = new CGSize(0, 0);
NavigationBar.Layer.ShadowOpacity = 1;
}
}
}
对于Android,您也需要首先创建一个文件actionbar_shadow.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:height="4dp" />
<gradient android:startColor="@android:color/transparent"
android:endColor="#88333333"
android:angle="90"/>
</shape>
然后编辑您的styles.xml
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#1976D2</item>
<item name="colorAccent">#FF4081</item>
<item name="android:elevation">4dp</item>
<item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>