zoukankan      html  css  js  c++  java
  • Xamarin.Forms之AppCompat

      由于Xamarin.Forms中是对官方控件的封装,其实开发过Xamarin.Android的都会知道基础与AppCompat的外观界面是相差很大的,使用方式上也有很多不同,而Forms内部的封装不会对每个都有具体的说明,特别是那些Android平台上面没有的控件,这里需要仔细的记录一下:

    1.Frame

         Frame在非AppCompat中,官方的渲染方式是通用Canvas画出一个圆角的矩形,对,就是这个简单,但是你升级AppCompat后发现,我艹,边框咋没有了,更别谈边框颜色了

    盗图了:

    new Frame {Padding = new Thickness(10), Content = iIconImage, HasShadow = false, BackgroundColor = Color.Transparent, OutlineColor = Color.Transparent};

    可以看到,即时将Frame的HasShaow=false,也会有阴影的

    原因在于:

    Yes in AppCompat frame is mapped to the Card control on Android. This is a bit of a breaking change when porting and you must be aware of it.

    没错,AppCompat官方的使用了CardView来替代前面的方式

    public class FrameRenderer : CardView, IVisualElementRenderer, IRegisterable, IDisposable

    2.ActionBar

    FormsAppCompatActivity里面已经封装了Toolbar,android里面使用v7包是可以继续使用ActionBar,但是Forms封装的必须使用'Theme.AppCompat.Light.NoActionBar',必须设置NoActionBar,否则会报错

    3.Page的生命周期

    这是很奇怪的问题,在原生界面,如果调用相机拍照  调用图库返回是不会触发OnViewAppearing的,但是在V7中会是Page触发该事件

  • 相关阅读:
    原型模式
    单例模式-2(注册式单例)
    单例模式-1(懒汉式、饿汉式)
    PBKDF2加密的实现
    vue中获取客户端IP地址
    微信公众平台,监听用户输入及事件
    详解二叉树的遍历-前中后序遍历/层序遍历-递归/迭代
    联想小新pro关机变慢的解决办法
    MySQL自学笔记系列
    MySQL入门-首先搞清楚【数据类型】
  • 原文地址:https://www.cnblogs.com/yz1311/p/5438841.html
Copyright © 2011-2022 走看看