前言html
Fragment其實能夠理解爲一個具備本身生命週期的控件,只不過這個控件又有點特殊,它有本身的處理輸入事件的能力,有本身的生命週期,又必須依賴於Activity,能互相通訊和託管。微信
使用Fragment還有這麼幾個方面優點:ide
代碼複用。特別適用於模塊化的開發,由於一個Fragment能夠被多個Activity嵌套,有個共同的業務模塊就能夠複用了,是模塊化UI的良好組件。模塊化
Activity用來管理Fragment。Fragment的生命週期是寄託到Activity中,Fragment能夠被Attach添加和Detach釋放。函數
可控性。Fragment能夠像普通對象那樣自由的建立和控制,傳遞參數更加容易和方便,也不用處理系統相關的事情,顯示方式、替換、無論是總體仍是部分,均可以作到相應的更改。測試
Fragments是view controllers,它們包含可測試的,解耦的業務邏輯塊,因爲Fragments是構建在views之上的,而views很容易實現動畫效果,所以Fragments在屏幕切換時具備更好的控制。動畫
視頻效果spa
此次咱們就上傳的e碼通的登錄界面,經過切換登錄方式直接切換對應的界面,帳號登錄和手勢登錄.net
代碼演示3d
咱們的e碼通項目,由於項目裏的文件較多,因此我這裏這截取重點。
登錄界面
activity_login.xml
中間的空白區域
咱們直接加一個LinearLayout起名爲login_fragment
LoginActivity
關鍵代碼
上面先定義了咱們的帳號登錄和手勢登錄的Fragment,而後用一個CreateFrag來建立表頭和表體碎片。
而後定義一個Logintype爲整型,用於區分當前的是帳號登錄仍是手勢登錄。而後SetLoginType函數就是用於根據不一樣的類型切換咱們的fragment的效果。
帳號登錄
fragment_login_input.xml
LoginInputFragment
手勢登錄
fragment_login_sign.xml
關於手勢登錄這塊咱們單獨再找一篇來說。
LoginSignFragment
運行效果
點擊切換登錄方式後
-END-
長按下方二維碼關注微卡智享
本文分享自微信公衆號 - 微卡智享(VaccaeShare)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。