【发布时间】:2020-07-18 07:50:31
【问题描述】:
我让我的应用程序与 Shell 页面一起工作,因为它可以很好地控制布局外观和整体易用性,到目前为止它对我很有帮助。
渐变应该平滑地从左侧颜色转移到右侧颜色,这是两种蓝色阴影。
已将渐变可绘制对象应用于工具栏/顶部导航栏,效果与预期一样,但是当我对底部导航栏重复相同的过程时,出现了一些奇怪的伪影。
在纵向中,条的最末端是黑色的,然后横向看到渐变仅适用于顶部的细条。当应用程序的 MainPage 属性已设置时,第三个工件也会出现,即使该页面已被 PopToRoot 关闭,我也可以在下面看到我拥有的确认按钮。
如果我在屏幕上拖动,我可以看到渐变边缘有点偏离,边缘呈锯齿状。
使用的颜色:
#0033D5
#002394
工具栏(工作)
protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
{
return new GradientShellToolbarAppearanceTracker(this);
}
public override void SetAppearance(Android.Support.V7.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
{
base.SetAppearance(toolbar, toolbarTracker, appearance);
var gradient = new GradientDrawable(
GradientDrawable.Orientation.LeftRight,
new int[] {
GradientShellPageColorTracker.ToolbarTopColor.ToAndroid(),
GradientShellPageColorTracker.ToolbarBottomColor.ToAndroid() }
);
toolbar.SetBackground(gradient);
}
底部导航栏(未按预期工作)
protected override IShellBottomNavViewAppearanceTracker CreateBottomNavViewAppearanceTracker(ShellItem shellItem)
{
return new GradientShellBottomTabBarAppearanceTracker(this, shellItem);
}
public override void SetAppearance(BottomNavigationView bottomView, IShellAppearanceElement appearance)
{
base.SetAppearance(bottomView, appearance);
var gradient = new GradientDrawable(
GradientDrawable.Orientation.RightLeft,
new int[] {
GradientShellPageColorTracker.BottomTabBarTopColor.ToAndroid(),
GradientShellPageColorTracker.BottomTabBarBottomColor.ToAndroid()
});
bottomView.SetBackground(gradient);
}
【问题讨论】:
标签: c# android xamarin xamarin.forms xamarin.android