如何加入Xamarin表单工具栏和UINavigationBar、梯度

我创建一个Xamarin形式跨平台应用为Android和iOS操作系统。我必须在操作系统的appbars添加一个渐变(在iOS Android和UINavigationBar、称为工具栏)有没有办法做到这一。请帮我应付的。任何东西。

enter image description here

你应该用户自定义渲染,像这样:

在你的PCL或共享的项目:

公共 类 navigationpagegradientheader : navigationpage
{
公共 navigationpagegradientheader(网页root) : 基地(root)
{
}

公共 静止的 只读 bindableproperty rightcolorproperty =
  bindableproperty。创造(属性名:名称(rightcolor),类型: 类型(颜色),declaringtype: 类型(navigationpagegradientheader),默认值: 颜色。经典口音)

公共 静止的 只读 bindableproperty leftcolorproperty =
   bindableproperty。创造(属性名:名称(leftcolor),类型: 类型(颜色),declaringtype: 类型(navigationpagegradientheader),默认值: 颜色。经典口音)

公共 颜色 rightcolor
{
    得到 { 退货 (颜色)方法(rightcolorproperty) }
    配置 { 赋值(rightcolorproperty,价值) }
}

公共 颜色 leftcolor
{
    得到 { 退货 (颜色)方法(leftcolorproperty) }
    配置 { 赋值(leftcolorproperty,价值) }
}

}
更新

因为“德翰wjiesekara渴望这个问题我已经花时间来创建一个例子,你可以看到它GitHub。

然后在你的Android工程:

【装配: exportrenderer(类型(navigationpagegradientheader), 类型(navigationpagegradientheaderrenderer))]
命名空间 yournamespace。机器人
{
公共 类 navigationpagegradientheaderrenderer : navigationrenderer
{
受保护的 重写 无效 onelementchanged(elementchangedeventargs<navigationpage>E)
{
基地。onelementchanged(E)

        / /运行时创建元素
        如果 (E。oldelement != 无效的 | | 元素 == 无效的)
        {
        退货
        }

        VaR控制装置= (navigationpagegradientheader)这。元素
        VaR语境= (主要活动)这。语境语境。ActionBar。setbackgrounddrawable(新 gradientdrawable(gradientdrawable。方向。从右到左, 新 int[ ] {控制装置。rightcolor。Android(),控制装置。leftcolor。Android() }))
    }
}

}
如果你使用formsappcompatactivity在你的主要活动只需添加一个Drawable在梯度这样地:

<?XML的版本=“1”编码=“UTF-8”???????>
<形 xmlns:Android=“http:/ / / / / schemas.android.com APK Android。” 安卓:形状=“矩形” >

<梯度
安卓:角=“180”
安卓:centercolor=“# 26c986”
安卓:endcolor=“# 109f8d”
Android的:startcolor=“# 36ed81”
安卓:类型=“线性” >

< /形状>
然后在你toolbar.axml文件称这个drawable:

< android.support.v7.widget.toolbar
xmlns:Android=“http:/ / / / / schemas.android.com APK Android。”
安卓:ID=“@ ID /工具栏”
安卓:layout_width=“match_parent”
安卓:layout_height=“包装_高兴”
安卓:背景=“”drawable /梯度”
安卓:主题=“@风格/ themeoverlay。appcompat ActionBar。黑暗。”
安卓:popuptheme=“@风格/ themeoverlay。appcompat。” >
在你的iOS项目:

【装配: exportrenderer(类型(navigationpagegradientheader), 类型(navigationpagegradientheaderrenderer))]
命名空间 yournamespace。iOS{
公共 类 navigationpagegradientheaderrenderer: navigationrenderer
{
公共 重写 无效 viewwillappear(布尔动画)
{
基地。viewwillappear(动画)

        VaR控制装置= (navigationpagegradientheader)这。元素

        VaR梯度层= 新 cagradientlayer()梯度层。界限 = 导航栏。界限梯度层。颜色 = 新 cgcolor[ ] {控制装置。rightcolor。tocgcolor(),控制装置。leftcolor。tocgcolor() }梯度层。起止点 = 新 cgpoint(零, 零点五)梯度层。端点 = 新 cgpoint(“1”, 零点五)

        uigraphics。beginimagecontext(梯度层。界限。大小)梯度层。renderincontext(uigraphics。getcurrentcontext())
        UIImage图片= uigraphics。getimagefromcurrentimagecontext()
        uigraphics。endimagecontext()

        导航栏。setbackgroundimage(图片, uibarmetrics。默认)
    }
}

}
最后在你代码文件文件称这这样的控制:

主页 = 新 navigationpagegradientheader(新 主页()) {
leftcolor = 颜色。fromhex(“# 109f8d”),
rightcolor = 颜色。fromhex(“# 36ed81”)
}

原文地址:http://www.apkbus.com/blog-919651-76494.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值