CPF的安卓端適配采用Xamarin的安卓綁定庫,而不是Xamarin.Form。CPF和flutter差不多,完全由skia繪制,基本不依賴原生控件。
當前還只是預覽版,不建議用在正式項目中。
可能有人會問,你這個和Maui和Xamarin.Form有什么區別?
1、CPF的控件完全由skia繪制,保證各個平臺一致性,不管是顯示還是行為。Maui和Xamarin.Form主要還是封裝原生控件為主。
2、不需要寫Xaml,采用C#描述UI,css寫樣式



項目結構,一個是Xamarin.Android項目,一個是NET Standard類庫項目,主要代碼寫在類庫項目里,而Xamarin.Android項目里只要定義適配器和啟動的視圖就行



安卓端的差異:
PC端是program.cs的里面有Main方法來初始化和啟動,安卓端需要安卓Activity來初始化啟動
安卓端的是MainView不是Window,MainView加載樣式是通過
Root.LoadStyleFile("res://ClassLibrary1/Stylesheet1.css");
MainView不能修改尺寸,不能移動
安卓端無法使用窗體的ShowDialogSync這種同步阻塞的方法
其他細節:
元素尺寸是標準的像素尺寸,和Chrome的移動端網頁仿真一致,不過設計器里暫時沒有移動端設備尺寸列表


支持內嵌原生控件,不過原生控件只能在最前端,就像wpf里的WinformHost。
比如你可以在MainView里定義一個公共的靜態委托
public static Func<object> CreateNativeControl;
然后在Xamarin.Android的MainActivity里初始化這個委托,綁定一個創建安卓原生控件的方法

最后在添加個NativeElement 元素,調用委托把創建的控件賦值給Content屬性


當前還只是預覽版,不建議用在正式項目中。
浙公網安備 33010602011771號