哈哈哈~~我最近在寫的Xamarin.Forms工程終于到了收尾階段了,主體功能都實現(xiàn)了,修復一些小Bug以及添加些小功能就算完成了,太高興了,心里滿滿的成就感,特別是安卓端界面完整呈現(xiàn)的時候。今天講點知識點,搭建一個小程序。
認識Xamarin.forms的工程結構##
我們先撇開安卓和iOS,先來了解公共部分。我們繼續(xù)看我們上期寫的HelloWorld程序

Snip20160811_28.png
先看這一塊,項目剛開始時就存在這些文件,我們來逐一看一下這些文件都是干嘛用的,以及里面放些什么文件。
估計有人會問我,為什么我的是中文版,其實我可以告訴你我也不知道,具體地說我的是中英文混合版,

Snip20160811_29.png
不閑扯了,還是回到剛才所說的,
- 引用:這個我目前還沒用到過,具體內容我不清楚,等我弄明白再回來補上吧(todo)
- 包:這個是導入一些庫,就像iOS工程里有時候需要導入一些framework一樣。
- Properties:這個我也不清楚(todo)
- App.xaml:這個文件比較重要,是程序的入口,和iOS 里 AppDelegate這個文件的功能有些類似,所以定義初始界面就在這里面。
- HelloWorldPage:這個文件和Xcode生成Single APP是生成的啟動界面一樣,默認第一個界面,刪除不影響的。這里我們點開前面的小三角會發(fā)現(xiàn)這里面其實有兩個文件:HelloWordPage.xaml和HelloWordPage.xaml.cs,這里我說明一下,HelloWordPage.xaml相當于view,不涉及業(yè)務邏輯,只處理一些控件的顯示和所要展示內容數(shù)據(jù)的綁定,相當于iOS里面的View。而HelloWordPage.xaml.cs里面正常情況下是寫業(yè)務邏輯的,它和iOS里的ViewController很像,所以在這里面其實也是可以寫界面的。不過代碼規(guī)范正常情況下是不允許這么做的,但特殊情況可以理解。這兩個文件是相關聯(lián)的,綁定在一起。前段時間我把幾個文件導入到其他工程,結果他們的關系就不存在了,我目前還不知道怎么讓獨立的兩個文件綁定在一起。
-
packages:這個是包文件版本文件,工程內所有導入的包信息都可以在這里面看到,所以上傳至git時不需要把包都上傳,只需要把這個文件導入就可以了。
好了,說了這么多我們來練一下手,按照自己的理解寫個小小的應用程序。
優(yōu)化版HelloWorld##
創(chuàng)建文件###

Snip20160811_30.png

Snip20160811_31.png
看到這個界面可能你會覺得無從下手,不要慌,我們先和他們握個手,認識一下
- Forms ContentPage: 這里有個訣竅,看到Page,咱們就可以把它看成ViewController,這樣就好理解了,F(xiàn)orms ContentPage就是創(chuàng)建一個Forms ContentPage.cs文件,也就是用純C#代碼寫界面。
- Forms ContentPage Xaml:一般情況用這個,他會創(chuàng)建一個ContentPage.xaml文件和ContentPage.xaml.cs文件,
- Forms ContentView:這個是生成用純C#代碼在定義View的文件
- Forms ContentView Xaml:這個和之前的類似,不用說你也應該能猜到。

Snip20160811_32.png
這里我們新建一個MyHelloWorld文件,讓我們在里面寫點東西

Snip20160811_33.png
我把里面的代碼貼出來吧
<?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="HelloWorld.MyHelloWorld">
<ContentPage.Content>
<StackLayout VerticalOptions = "FillAndExpand"
HorizontalOptions = "FillAndExpand">
<Label Text = "Hello My World!"
TextColor ="Red"
FontSize = "25"
VerticalOptions = "CenterAndExpand"
HorizontalOptions = "CenterAndExpand"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
然后我們在APP文件配置一下

Snip20160811_34.png
這樣運行就可以了

Snip20160811_35.png
這里我只是做個演示,代碼我就不詳細講解了,后期我會逐漸深入的整理。
結語##
進度有點慢,一個星期才一篇,這是我深入理解后的結果。不過還是希望大神們能給點指點,Xamarin的路還很遙遠。文章中一些見解是我個人理解,如有錯誤之處,還請給予指正,謝謝。