終於是到了M開頭的檔案了,沒錯,終於能遇到最熟悉的main檔案了,直接進入正題吧。
1.main:出乎我的預料,oschina的main檔案非常的簡單,只有短短几行代碼,一望過去,都是<include>標籤,瞬間我就明白了,全是引用了之前定義完的代碼,因為代碼不長,我就全部複製進來再來講。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/white"> <include layout="@layout/main_header" /> <net.oschina.app.widget.ScrollLayout android:id="@+id/main_scrolllayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <include layout="@layout/frame_news" /> <include layout="@layout/frame_question" /> <include layout="@layout/frame_tweet" /> <include layout="@layout/frame_active" /> </net.oschina.app.widget.ScrollLayout> <include layout="@layout/main_footer" /> </LinearLayout>
一個老面孔LinearLayout,接著引用main_header檔案,這個檔案下面來講,然後匯入net.oschina.app.widget.ScrollLayout 包,我覺得關於包的使用還是有必要在這裡認真學習一下。之後便是上兩篇介紹過的幾個frame檔案了,分別是資訊,問答,動彈,我的空間。下面是引用main_footer檔案,這個下面也會講。
2.main_header:代碼倒是挺簡單的,這裡用的是相對布局,下面是一個表示“資訊”的圖片 的文本。(新版裡這裡有進度條和搜尋表徵圖,老版本進度條很小,在資訊圖案的下發,幾乎看不到),接著是三個按鈕圖片標籤,分別表示最新資訊,最新部落格和推薦閱讀,還是因為版本不同的關係,老版的三個圖案實現的是不同的功能,而新版本,則是將資訊頁面完完全全作為首頁了,所以頁面代碼有所不同。
3.main_footer:這個頁面也很簡單,單純的頁尾檔案,顯示的是五個表徵圖,代碼就是圖片,豎線,圖片,豎線。。。但是這裡的圖片居然用的是RadioButton標籤,這讓我大感興趣,明顯,單選框用在這裡的意思就是只能同步選取一個圖案。
滿懷期待的把main看完了,居然只用了十分鐘就把它解讀了,不得不說這裡引用起了很大的作用,縮減了代碼量,提高了代碼效率,這是我們學習java,android的捷徑。
4.message_detail:這幾個檔案代碼首碼叫聊天細節,具體作用在我的空間的留言部分。這個檔案相當於上面的main檔案一樣,是個主要的檔案,其他幾個檔案都是組成它的一部分。
LinearLayout布局,<include>標籤引用頁首,使用包net.oschina.app.widget.PullToRefreshListView,話說這些包真的很複雜,按住Ctrl進去,就能看到完整細節,下面又是<include>標籤引用頁尾,這就完成了。
5.message_detail_footer:頁尾,先上:
ViewSwitcher標籤實現動畫效果,線性布局,背景是黑色圖片,之後是的白色圖片檔案,裡面還寫著發送留言字樣。下面的線性布局是按下發送留言圖片之後產生的,一個文本編輯框,和一個發送按鈕。
6.message_detail_header:頁首檔案,看圖:
這次是FrameLayout,架構布局,但是我參考了網上的檔案後發現它的名字更趨向於“單幀布局”:這種布局下每個添加的子控制項都被放在布局的左上方,並覆蓋在前一子控制項的上層。其實我發現,這個和之前的頁尾對比,頁首要複雜一些,所以單純用相對布局可能不太好排版。在布局中添加了背景,然後使用圖片控制項表示“返回”,
android:layout_gravity="left|center"
中間文本控制項表示與何人的對話
android:layout_gravity="center"
之後是一個進度條控制項,表示重新整理
android:layout_gravity="right|center"
以上三句代碼錶示了架構布局的方便性,若使用線性布局,肯定沒這麼簡單。
對啦還有一個圖片控制項表示重新整理,和進度條重合了,這裡不概述了。
7.message_forward:轉寄留言,長按住別人的留言就能進入這一步
很奇怪,這裡同樣是定義頁首,為啥用到的又回到了線性布局呢?難道我上面的推測不正確?我想了下,這裡不是頁首,只是定義一個頭部檔案而已,下面還有線性布局完成整個頁面,所以才是這樣的。下面LenearLayout寫的是圖片中中間部分,文本控制項“發給:”,文本編輯框內建 android:hint屬性顯示:"請輸入對方暱稱",再一個線性布局完成最下部分,文本控制項:“留言內容”,文本編輯框屬性android:hint=“請輸入留言內容"。
8.message_pub:發送留言,新版的實在是沒找到這部分內容,不管它了,反正跟上面一個檔案差不多。
9.message_lisitem和message_detail_listitem:搞不懂了,這兩個檔案名稱字都差不多,代碼倒是不一樣,後者預覽介面比起前者,有兩個帳戶圖片,新版的是沒有後者內容的,所以這裡就討論前者的代碼。
線性布局,圖片控制項表示帳戶圖片,線性布局,並以一個對話方塊作為背景,後面是文本控制項表示內容,下面是相對布局。。。原來還能這麼用,這樣在一個背景內也能實現較好的排版,下面三個文本控制項實現的是用戶端,時間和評論次數。
這一篇寫的時間挺長的,看看Layout檔案夾,總算是寫到一半了,這兩天一篇的速度還是有點慢啊~
OK,未完待續!