源碼地址:https://github.com/l2999019/DemoAppjava
能夠Star一下,隨意 - -git
本系列,終於要終章了..感受有點小失落github
把我最終的成果模版開源出來吧地址以下:api
https://github.com/l2999019/Xamarin.FormsDemo_CHN瀏覽器
效果如圖:緩存
基本算是涵蓋了常見APP大部分的功能吧..安全
WebView,二維碼掃描,開燈,地圖,定位,終端設備的信息網絡
Xamarin在社區中其實有不少比較方便的組件,方便你們直接使用.併發
並且Xamarin團隊將這些社區組件整理成了一個列表,方便咱們查詢.
列表的Github地址以下:
https://github.com/xamarin/XamarinComponents
今天咱們主要是以設備信息組件爲例子介紹一下如何使用社區組件
首先咱們須要查詢到本身須要使用的組件.
由於是英文,並且單詞比較簡單,因此我直接用谷歌翻譯了,表格以下:
咱們今天要使用設備信息的組件.,因此直接找到設備信息,而後進入nuget界面,引用.
注意,這裏要強調的一點是,當你使用這些組件的時候,必定須要PCL項目加上客戶端項目,都要引用
也就是如圖:
紅框中的三個項目,都須要引用一樣的nuget庫.由於PCL中是接口,各個平臺客戶端纔是具體實現.
須要仔細看文檔說明,有些插件是須要初始化的,因此須要你在客戶端項目中初始化,好比二維碼插件( ZXing.Net.Mobile)
剩下的代碼就很簡單了,咱們先建立一個Page,並添加listView控件以下:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Xamarin.FormsDemo_CHN.Views.SheBeiInfoPage" Title="設備信息" > <ContentPage.Content> <StackLayout> <ListView x:Name="ItemsListView" > <ListView.ItemTemplate > <DataTemplate > <TextCell Text="{Binding TextName}" Detail="{Binding Name}" DetailColor="#7EC0EE" /> </DataTemplate> </ListView.ItemTemplate> </ListView> <Label Text="Welcome to Xamarin.Forms!" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" /> </StackLayout> </ContentPage.Content> </ContentPage>
而後直接F7,進入後臺代碼,編寫代碼以下:
public partial class SheBeiInfoPage : ContentPage { List<dynamic> date = new List<dynamic>(); public SheBeiInfoPage() { InitializeComponent(); AddPhoneInfo(); ItemsListView.ItemsSource = date; } public void AddPhoneInfo() { string model = CrossDeviceInfo.Current.Model; string Version = CrossDeviceInfo.Current.Version; string VersionNumber = CrossDeviceInfo.Current.VersionNumber.ToString(); string Platform = CrossDeviceInfo.Current.Platform.ToString(); date.Add(new { TextName = model, Name = "設備名稱" }); date.Add(new { TextName = Version, Name = "設備版本" }); date.Add(new { TextName = VersionNumber, Name = "設備版本號" }); date.Add(new { TextName = Platform, Name = "設備平臺" }); } }
由於封裝的已經很完善了,直接經過靜態類CrossDeviceInfo,就能夠獲取相關的設備信息.
tip:最新的版本新增了判斷是否爲模擬器的功能,可是nuget好像沒加入,須要使用的話能夠從github自行編譯.
原本打算這篇文章講綁定類庫,可是看了一下,網上已經不少這類的文章了,原本操做也比較簡單...我就不過多的譁衆取寵了.
惟一要解釋的一點,
就是關於綁定了類庫以後,會類名,變量名報錯的問題.
不少文章都是一筆帶過..讓你們修改Metadate.xml更改綁定規則就完事了..
不過我以爲 授人以魚不如授人以漁.
出現這個錯誤的主要緣由是:
GAPI這個工具,會將java代碼自動化解析成C#代碼,可是,完美的解析,是不可能的.
因此會出現少許的錯誤信息,須要咱們配置這個xml文件來特殊配置這些錯誤的節點.
咱們應該用的最多的就是attr這個節點,以下:
<attr path="/api/namespace/object[@cname='GtkWindow']/signal[@name='ActivateDefault']" name="name">DefaultActivated</attr>
咱們可使用它來更改任何現有屬性的值,或將新屬性插入API文件中的任何元素。
<attr>元素有兩個屬性path和name,使用path來標識要更改的元素,並使用name來標識元素上的屬性名稱。
固然,各位若是想更深刻的瞭解這個能夠把java變成C#的神奇神器..能夠到以下地址查看
http://www.mono-project.com/docs/gui/gtksharp/gapi/
結束了..Xamarin說難,其實也不難,說簡單,其實你須要瞭解的東西仍是挺多的.
但願開源出來的項目模版能幫到你們..
最後,真誠的感謝你們對本系列的支持.
個人博客即將同步至騰訊雲+社區,邀請你們一同入駐。