平台|MAUI中构建跨平台原生控件实现( 二 )
}
publicMyProgressBarHandler( ) : base( HorizontalProgressBarMapper) {
}}
第三步
创建平台处理程序
在属性映射器中 , 我们可以很轻松看见对应了三个属性的事件处理程序 , 但是目前并没有定义它 , 这意味着你需要在不同平台下分别实现对应的三个事件处理程序 , 赶紧在Platforms > Android > Controls 下定义了一个MyProgressBarHandler , 如下所示:
文章图片
接着继承于ViewHandler并且与原生安卓ProgressBar关联 。
}
重写CreateNativeView(这是创建本地控件最开始的地方) 。
staticvoidUpdateForeground( ProgressBar nativeProgressBar, Color color) {if(color == null) {(nativeProgressBar.Indeterminate ? nativeProgressBar.IndeterminateDrawable :nativeProgressBar.ProgressDrawable)?.ClearColorFilter;}else{vartintList = ColorStateList.ValueOf(color.ToNative);
if(nativeProgressBar.Indeterminate) nativeProgressBar.IndeterminateTintList = tintList;elsenativeProgressBar.ProgressTintList = tintList;}}}
staticvoidMapIndeterminate( MyProgressBarHandler handler, MyProgressBar view) {varnativeView= handler?.NativeView; nativeView.Indeterminate = view.Indeterminate;}
第四步
对应的实现iOS平台的Handler事件处理程序, 与 上步骤 相同, 对于事件 的处理细节则对应不同平台的逻辑处理
推荐阅读
- China|中国移动10086 APP发布公告:将于1月30日停止运营
- 新浪科技|还在售卖!上万元买肯德基盲盒套餐,中消协呼吁抵制
- 中国新闻网|最新数据:中国有效发明专利359.7万件 有效注册商标3724万件
- 中国新闻网|美团外卖:西安受疫情影响骑手免除所有违规扣罚
- 最新消息|肯德基客服回应盲盒被中消协点名:不影响销售 可继续买
- IT|疑似极氪新车路试谍照曝光 定位中大型家用MPV/或命名为极氪002
- 中新经纬|反向带货还是饥饿营销,瑞幸李国庆互怼伤害了谁?
- 年味|冬奥会闭环的年味
- 新京报|肯德基客服回应盲盒被中消协点名:不影响销售,可以继续购买
- 新浪汽车|特斯拉回应ModelY起火:被旁边充电中的网约车引燃