1.設計模式(mvc, mvp)
(1)mvc 將數(shù)據(jù)模型、界面視圖和業(yè)務邏輯控制分開的模式
- Model :只準備純數(shù)據(jù),不關心它如何呈現(xiàn)。
問題:Model層與View層到底是如何連接的? 大多數(shù)情況Activity既充當View層又充當Controller層,所以用原生控件的時候,Model只會與Activity交互而不會與xml文件交互,但是如果用自定義控件的時候可以把Model層獲取的數(shù)據(jù)(通過controller層)傳給View層進行顯示(在View層操作從model層獲取的數(shù)據(jù))---這樣的好處在于當要修改UI時不需要去修改Model和Controller。
- View:(xml文件或自定義控件)只管顯示數(shù)據(jù),不管數(shù)據(jù)從何而來
- Controller:(Activity)負責控制處理事件
問題:Model的更新是通過觀察者模式告知View的?觀察者模式?
(2)mvp
主要是activity或者Fragment充當了View層,Presenter層相當于View層和Model層的一個橋梁,將Model層獲取的數(shù)據(jù)傳送給View層顯示(還是在Presenter層操作model層獲取的數(shù)據(jù)數(shù)據(jù))
2.RecycleView
先復習下ListView,使用ViewHolder是為了減少findViewById的次數(shù)
- (1)創(chuàng)建Adapter繼承RecycleView.Adapter<ViewHolder>
- (2)實現(xiàn)兩個重要的方法onBindViewHodler()以及onCreateViewHolder() (使用RecyclerView控件我們就可以把Item View視圖創(chuàng)建和數(shù)據(jù)綁定這兩步進行分來進行管理,用法就更加方便而且靈活)
- (3)創(chuàng)建一個ViewHolder類,該類必須繼承自RecyclerView.ViewHolder類
RecycleView擴展:
RecycleView官方分割線
ListView與RecyclerView的區(qū)別
1.ListView是繼承BaseAdapter,復用convertView使用ViewHoleder減少findViewById()的次數(shù),而RecyclerView的adpter是繼承RecyclerView.adapte<RcyclerView.ViewHolder>
2.RecyclerView可以根據(jù)自己的需求去自定義分割線
3.RecyclerView自己實現(xiàn)了局部刷新。
4.RecyclerView提供了動畫效果。
5.RcyclerView支持嵌套滑動機制。