androidmvp與mvvm
⑴ Android 目前是 mvc,mvp,mvvm 哪種模式比較好
mvc的界面和邏輯關聯緊密,數據直接從資料庫讀取。mvvm的界面與viewmode是松耦合,界面數據從viewmodel中獲取。如果你寫代碼的時候在界面的cs文件里有很多業務邏輯代碼,那麼你使用的就不是mvvm,而是mvc
⑵ Android 中 MVC、MVP 和 MVVM 對比
MVC、MVP和MVVM是常見的三種架構設計模式,當前MVP和MVVM的使用相對比較廣泛,當然MVC也並沒有過時之說。
MVC (Model-View-Controller, 模型-視圖-控制器),標準的MVC是這個樣子的:
簡述:
缺點:
MVP (Model-View-Presenter) 是MVC的演化版本,幾個主要部分如下:
簡述:
解釋:
優點:
缺點:
MVVM 是 Model-View-ViewModel 的簡寫。和 MVP 模式相比,MVVM 模式用 ViewModel 替換了 Presenter ,其他層基本上與 MVP 模式一致,ViewModel 可以理解成 是 View 的數據模型和 Presenter 的合體。MVVM 就是將其中的 View 的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開。
簡述:
缺點:
參考:
⑶ AndroidMVVM
姒傝堪
璇村埌AndroidMVVM錛岀浉淇″ぇ瀹墮兘浼氭兂鍒癎oogle2015騫存帹鍑虹殑DataBinding妗嗘灦銆傜劧鑰屼袱鑰呯殑姒傚康鏄涓嶄竴鏍風殑錛屼笉鑳芥販涓轟竴璋堛侻VVM鏄涓縐嶆灦鏋勬ā寮忥紝鑰孌ataBinding鏄涓涓瀹炵幇鏁版嵁鍜孶I緇戝畾鐨勬嗘灦錛屾槸鏋勫緩MVVM妯″紡鐨勪竴涓宸ュ叿銆
涔嬪墠鐪嬭繃寰堝氬叧浜嶢ndroidMVVM鐨勫崥瀹錛屼絾澶у氭暟鎻愬埌鐨勯兘鏄疍ataBinding鐨勫熀鏈鐢ㄦ硶錛屽緢灝戞湁鏂囩珷浠旂粏璁茶В鍦ˋndroid涓鏄濡備綍閫氳繃DataBinding鍘繪瀯寤篗VVM鐨勫簲鐢ㄦ嗘灦鐨勩俈iew銆乂iewModel銆丮odel姣忎竴灞傜殑鑱岃矗濡備綍?瀹冧滑涔嬮棿鑱旂郴鎬庢牱銆佸垎宸ュ備綍銆佷唬鐮佸簲璇ュ備綍璁捐?榪欐槸鎴戝啓榪欑瘒鏂囩珷鐨勫垵琛楓
鎺ヤ笅鏉ワ紝鎴戜滑鍏堟潵鐪嬬湅浠涔堟槸MVVM錛岀劧鍚庡啀涓姝ヤ竴姝ユ潵璁捐℃暣涓狹VVM妗嗘灦銆
MVC銆丮VP銆丮VVM
棣栧厛錛屾垜浠鍏堝ぇ鑷翠簡瑙d笅Android寮鍙戜腑甯歌佺殑妯″紡銆
MVC
View錛歑ML甯冨矓鏂囦歡銆
Model錛氬疄浣撴ā鍨(鏁版嵁鐨勮幏鍙栥佸瓨鍌ㄣ佹暟鎹鐘舵佸彉鍖)銆
Controllor錛氬瑰簲浜嶢ctivity錛屽勭悊鏁版嵁銆佷笟鍔″拰UI銆
浠庝笂闈㈣繖涓緇撴瀯鏉ョ湅錛孉ndroid鏈韜鐨勮捐¤繕鏄絎﹀悎MVC鏋舵瀯鐨勶紝浣嗘槸Android涓綰綺逛綔涓篤iew鐨刋ML瑙嗗浘鍔熻兘澶寮憋紝鎴戜滑澶ч噺澶勭悊View鐨勯昏緫鍙鑳藉啓鍦ˋctivity涓錛岃繖鏍稟ctivity灝卞厖褰撲簡View鍜孋ontroller涓や釜瑙掕壊錛岀洿鎺ュ艱嚧Activity涓鐨勪唬鐮佸ぇ鐖嗙偢銆傜浉淇″ぇ澶氭暟Android寮鍙戣呴兘閬囧埌榪囦竴涓獮citivty鏁頒互鍗冭岀殑浠g爜鎯呭喌鍚!鎵浠ワ紝鏇磋創鍒囩殑璇存硶鏄錛岃繖涓狹VC緇撴瀯鏈緇堝叾瀹炲彧鏄涓涓狹odel-View(Activity:View&Controller)鐨勭粨鏋勩
MVP
View:瀵瑰簲浜嶢ctivity鍜孹ML錛岃礋璐View鐨勭粯鍒朵互鍙婁笌鐢ㄦ埛鐨勪氦浜掋
Model:渚濈劧鏄瀹炰綋妯″瀷銆
Presenter:璐熻矗瀹屾垚View涓嶮odel闂寸殑浜や簰鍜屼笟鍔¢昏緫銆
鍓嶉潰鎴戜滑璇達紝Activity鍏呭綋浜哣iew鍜孋ontroller涓や釜瑙掕壊錛孧VP灝辮兘寰堝ソ鍦拌В鍐寵繖涓闂棰橈紝鍏舵牳蹇冪悊蹇墊槸閫氳繃涓涓鎶借薄鐨刅iew鎺ュ彛(涓嶆槸鐪熸g殑View灞)灝哖resenter涓庣湡姝g殑View灞傝繘琛岃В鑰︺侾ersenter鎸佹湁璇View鎺ュ彛錛屽硅ユ帴鍙h繘琛屾搷浣滐紝鑰屼笉鏄鐩存帴鎿嶄綔View灞傘傝繖鏍峰氨鍙浠ユ妸瑙嗗浘鎿嶄綔鍜屼笟鍔¢昏緫瑙h︼紝浠庤岃〢ctivity鎴愪負鐪熸g殑View灞傘
浣哅VP涔熷瓨鍦ㄤ竴浜涘紛絝錛
Presenter(浠ヤ笅綆縐癙)灞備笌View(浠ヤ笅綆縐癡)灞傛槸閫氳繃鎺ュ彛榪涜屼氦浜掔殑錛屾帴鍙g矑搴︿笉濂芥帶鍒躲傜矑搴﹀お灝忥紝灝變細瀛樺湪澶ч噺鎺ュ彛鐨勬儏鍐碉紝浣誇唬鐮佸お榪囩庣増鍖;綺掑害澶澶э紝瑙h︽晥鏋滀笉濂姐傚悓鏃跺逛簬UI鐨勮緭鍏ュ拰鏁版嵁鐨勫彉鍖栵紝闇瑕佹墜鍔ㄨ皟鐢╒灞傛垨鑰匬灞傜浉鍏崇殑鎺ュ彛錛岀浉瀵規潵璇寸己涔忚嚜鍔ㄦс佺洃鍚鎬с傚傛灉鏁版嵁鐨勫彉鍖栬兘鑷鍔ㄥ搷搴斿埌UI銆乁I鐨勮緭鍏ヨ兘鑷鍔ㄦ洿鏂板埌鏁版嵁錛岄偅璇ュ氬ソ!
MVP鏄浠UI涓洪┍鍔ㄧ殑妯″瀷錛屾洿鏂癠I閮介渶瑕佷繚璇佽兘鑾峰彇鍒版帶浠剁殑寮曠敤錛屽悓鏃舵洿鏂癠I鐨勬椂鍊欒佽冭檻褰撳墠鏄鍚︽槸UI綰跨▼錛屼篃瑕佽冭檻Activity鐨勭敓鍛藉懆鏈(鏄鍚﹀凡緇忛攢姣佺瓑)銆
MVP鏄浠UI鍜屼簨浠朵負椹卞姩鐨勪紶緇熸ā鍨嬶紝鏁版嵁閮芥槸琚鍔ㄥ湴閫氳繃UI鎺т歡鍋氬睍紺猴紝浣嗘槸鐢變簬鏁版嵁鐨勬椂鍙樻э紝鎴戜滑鏇村笇鏈涙暟鎹鑳借漿琚鍔ㄤ負涓誨姩錛屽笇鏈涙暟鎹鑳芥洿鏈夋椿鎬э紝鐢辨暟鎹鏉ラ┍鍔║I銆
V灞備笌P灞傝繕鏄鏈変竴瀹氱殑鑰﹀悎搴︺備竴鏃V灞傛煇涓猆I鍏冪礌鏇存敼錛岄偅涔堝瑰簲鐨勬帴鍙e氨蹇呴』寰楁敼錛屾暟鎹濡備綍鏄犲皠鍒癠I涓娿佷簨浠剁洃鍚鎺ュ彛榪欎簺閮介渶瑕佽漿鍙橈紝鐗典竴鍙戣屽姩鍏ㄨ韓銆傚傛灉榪欎竴灞備篃鑳借В鑰﹀氨鏇村ソ浜嗐
澶嶆潅鐨勪笟鍔″悓鏃朵篃鍙鑳戒細瀵艱嚧P灞傚お澶э紝浠g爜鑷冭偪鐨勯棶棰樹緷鐒朵笉鑳借В鍐熾
MVVM
View:瀵瑰簲浜嶢ctivity鍜孹ML錛岃礋璐View鐨勭粯鍒朵互鍙婁笌鐢ㄦ埛浜や簰銆
Model:瀹炰綋妯″瀷銆
ViewModel:璐熻矗瀹屾垚View涓嶮odel闂寸殑浜や簰錛岃礋璐d笟鍔¢昏緫銆
MVVM鐨勭洰鏍囧拰鎬濇兂涓嶮VP綾諱技錛屽埄鐢ㄦ暟鎹緇戝畾(DataBinding)銆佷緷璧栧睘鎬(DependencyProperty)銆佸懡浠(Command)銆佽礬鐢變簨浠(RoutedEvent)絳夋柊鐗規э紝鎵撻犱簡涓涓鏇村姞鐏墊椿楂樻晥鐨勬灦鏋勩
鏁版嵁椹卞姩
鍦ㄥ父瑙勭殑寮鍙戞ā寮忎腑錛屾暟鎹鍙樺寲闇瑕佹洿鏂癠I鐨勬椂鍊欙紝闇瑕佸厛鑾峰彇UI鎺т歡鐨勫紩鐢錛岀劧鍚庡啀鏇存柊UI銆傝幏鍙栫敤鎴風殑杈撳叆鍜屾搷浣滀篃闇瑕侀氳繃UI鎺т歡鐨勫紩鐢ㄣ傚湪MVVM涓錛岃繖浜涢兘鏄閫氳繃鏁版嵁椹卞姩鏉ヨ嚜鍔ㄥ畬鎴愮殑錛屾暟鎹鍙樺寲鍚庝細鑷鍔ㄦ洿鏂癠I錛孶I鐨勬敼鍙樹篃鑳借嚜鍔ㄥ弽棣堝埌鏁版嵁灞傦紝鏁版嵁鎴愪負涓誨煎洜緔犮傝繖鏍稭VVM灞傚湪涓氬姟閫昏緫澶勭悊涓鍙瑕佸叧蹇冩暟鎹錛屼笉闇瑕佺洿鎺ュ拰UI鎵撲氦閬擄紝鍦ㄤ笟鍔″勭悊榪囩▼涓綆鍗曟柟渚垮緢澶氥
浣庤﹀悎搴
MVVM妯″紡涓錛屾暟鎹鏄鐙絝嬩簬UI鐨勩
鏁版嵁鍜屼笟鍔¢昏緫澶勪簬涓涓鐙絝嬬殑ViewModel涓錛孷iewModel鍙闇瑕佸叧娉ㄦ暟鎹鍜屼笟鍔¢昏緫錛屼笉闇瑕佸拰UI鎴栬呮帶浠舵墦浜ら亾銆俇I鎯蟲庝箞澶勭悊鏁版嵁閮界敱UI鑷宸卞喅瀹氾紝ViewModel涓嶆秹鍙婁換浣曞拰UI鐩稿叧鐨勪簨錛屼篃涓嶆寔鏈塙I鎺т歡鐨勫紩鐢ㄣ傚嵆渚挎槸鎺т歡鏀瑰彉浜(姣斿傦細TextView鎹㈡垚EditText)錛孷iewModel涔熷嚑涔庝笉闇瑕佹洿鏀逛換浣曚唬鐮併傚畠闈炲父瀹岀編鐨勮В鑰︿簡View灞傚拰ViewModel錛岃В鍐充簡涓婇潰鎴戜滑鎵璇寸殑MVP鐨勭棝鐐廣
鏇存柊UI
鍦∕VVM涓錛屾暟鎹鍙戠敓鍙樺寲鍚庯紝鎴戜滑鍦ㄥ伐浣滅嚎紼嬬洿鎺ヤ慨鏀(鍦ㄦ暟鎹鏄綰跨▼瀹夊叏鐨勬儏鍐典笅)ViewModel鐨勬暟鎹鍗沖彲錛屼笉鐢ㄥ啀鑰冭檻瑕佸垏鍒頒富綰跨▼鏇存柊UI浜嗭紝榪欎簺浜嬫儏鐩稿叧妗嗘灦閮藉府鎴戜滑鍋氫簡銆
鍥㈤槦鍗忎綔
MVVM鐨勫垎宸ユ槸闈炲父鏄庢樉鐨勶紝鐢變簬View鍜孷iewModel涔嬮棿鏄鏉炬暎鑰﹀悎鐨勶細涓涓鏄澶勭悊涓氬姟鍜屾暟鎹銆佷竴涓鏄涓撻棬鐨刄I澶勭悊銆傛墍浠ワ紝瀹屽叏鐢變袱涓浜哄垎宸ユ潵鍋氾紝涓涓鍋歎I(XML鍜孉ctivity)涓涓鍐橵iewModel錛屾晥鐜囨洿楂樸
鍙澶嶇敤鎬
涓涓猇iewModel鍙浠ュ嶇敤鍒板氫釜View涓銆傚悓鏍風殑涓浠芥暟鎹錛屽彲浠ユ彁渚涚粰涓嶅悓鐨刄I鍘誨仛灞曠ず銆傚逛簬鐗堟湰榪浠d腑棰戠箒鐨刄I鏀瑰姩錛屾洿鏂版垨鏂板炰竴濂梀iew鍗沖彲銆傚傛灉鎯沖湪UI涓婂仛A/BTesting錛岄偅MVVM鏄浣犱笉浜岄夋嫨銆
鍗曞厓嫻嬭瘯
鏈変簺鍚屽︿竴鐪嬪埌鍗曞厓嫻嬭瘯錛屽彲鑳借剳琚嬮兘澶с傛槸鍟婏紝鍐欐垚涓鍥㈡祮緋婄殑浠g爜鎬庝箞鍙鑳藉仛鍗曞厓嫻嬭瘯?濡傛灉浣犱滑浠ヤ唬鐮佸お鐑傛棤娉曞啓鍗曞厓嫻嬭瘯鑰岄冮伩錛岄偅鍙鐪熸槸涓嶅ソ鐨勬秷鎮浜嗐傝繖鏃跺欙紝浣犻渶瑕丮VVM鏉ユ嫰鏁戙
鎴戜滑鍓嶉潰璇磋繃浜嗭紝ViewModel灞傚仛鐨勪簨鏄鏁版嵁澶勭悊鍜屼笟鍔¢昏緫錛孷iew灞備腑鍏蟲敞鐨勬槸UI錛屼袱鑰呭畬鍏ㄦ病鏈変緷璧栥備笉綆℃槸UI鐨勫崟鍏冩祴璇曡繕鏄涓氬姟閫昏緫鐨勫崟鍏冩祴璇曪紝閮芥槸浣庤﹀悎鐨勩傚湪MVVM涓鏁版嵁鏄鐩存帴緇戝畾鍒癠I鎺т歡涓婄殑(閮ㄥ垎鏁版嵁鏄鍙浠ョ洿鎺ュ弽鏄犲嚭UI涓婄殑鍐呭)錛岄偅涔堟垜浠灝卞彲浠ョ洿鎺ラ氳繃淇鏀圭粦瀹氱殑鏁版嵁婧愭潵闂存帴鍋氫竴浜汚ndroidUI涓婄殑嫻嬭瘯銆
閫氳繃涓婇潰鐨勭畝榪頒互鍙婃ā寮忕殑瀵規瘮錛屾垜浠鍙浠ュ彂鐜癕VVM鐨勪紭鍔胯繕鏄闈炲父鏄庢樉鐨勩傝櫧鐒剁洰鍓岮ndroid寮鍙戜腑鍙鑳界湡姝e湪浣跨敤MVVM鐨勫緢灝戱紝浣嗘槸鍊煎緱鎴戜滑鍘誨仛涓浜涙帰璁ㄥ拰璋冪爺銆
濡備綍鏋勫緩MVVM搴旂敤妗嗘灦
濡備綍鍒嗗伐
鏋勫緩MVVM妗嗘灦棣栧厛瑕佸叿浣撲簡瑙e悇涓妯″潡鐨勫垎宸ャ傛帴涓嬫潵鎴戜滑鏉ヨ茶ВView銆乂iewModel銆丮odel瀹冧滑鍚勮嚜鐨勮亴璐f墍鍦ㄣ
View
View灞傚仛鐨勫氨鏄鍜孶I鐩稿叧鐨勫伐浣滐紝鎴戜滑鍙鍦╔ML銆丄ctivity鍜孎ragment鍐橵iew灞傜殑浠g爜錛孷iew灞備笉鍋氬拰涓氬姟鐩稿叧鐨勪簨錛屼篃灝辨槸鎴戜滑鍦ˋctivity涓嶅啓涓氬姟閫昏緫鍜屼笟鍔℃暟鎹鐩稿叧鐨勪唬鐮侊紝鏇存柊UI閫氳繃鏁版嵁緇戝畾瀹炵幇錛屽敖閲忓湪ViewModel閲岄潰鍋(鏇存柊緇戝畾鐨勬暟鎹婧愬嵆鍙)錛孉ctivity瑕佸仛鐨勪簨灝辨槸鍒濆嬪寲涓浜涙帶浠(濡傛帶浠剁殑棰滆壊錛屾坊鍔犵殑鍒嗗壊綰)錛孷iew灞傚彲浠ユ彁渚涙洿鏂癠I鐨勬帴鍙(浣嗘槸鎴戜滑鏇村懼悜鎵鏈夌殑UI鍏冪礌閮芥槸閫氳繃鏁版嵁鏉ラ┍鍔ㄦ洿鏀筓I)錛孷iew灞傚彲浠ュ勭悊浜嬩歡(浣嗘槸鎴戜滑鏇村笇鏈沀I浜嬩歡閫氳繃Command鏉ョ粦瀹)銆傜畝鍗曞湴璇達細View灞備笉鍋氫換浣曚笟鍔¢昏緫銆佷笉娑夊強鎿嶄綔鏁版嵁銆佷笉澶勭悊鏁版嵁錛孶I鍜屾暟鎹涓ユ牸鐨勫垎寮銆
ViewModel
ViewModel灞傚仛鐨勪簨鎯呭垰濂藉拰View灞傜浉鍙嶏紝ViewModel鍙鍋氬拰涓氬姟閫昏緫鍜屼笟鍔℃暟鎹鐩稿叧鐨勪簨錛屼笉鍋氫換浣曞拰UI鐩稿叧鐨勪簨鎯咃紝ViewModel灞備笉浼氭寔鏈変換浣曟帶浠剁殑寮曠敤錛屾洿涓嶄細鍦╒iewModel涓閫氳繃UI鎺т歡鐨勫紩鐢ㄥ幓鍋氭洿鏂癠I鐨勪簨鎯呫俈iewModel灝辨槸涓撴敞浜庝笟鍔$殑閫昏緫澶勭悊錛屽仛鐨勪簨鎯呬篃閮藉彧鏄瀵規暟鎹鐨勬搷浣(榪欎簺鏁版嵁緇戝畾鍦ㄧ浉搴旂殑鎺т歡涓婁細鑷鍔ㄥ幓鏇存敼UI)銆傚悓鏃禗ataBinding妗嗘灦宸茬粡鏀鎸佸弻鍚戠粦瀹氾紝璁╂垜浠鍙浠ラ氳繃鍙屽悜緇戝畾鑾峰彇View灞傚弽棣堢粰ViewModel灞傜殑鏁版嵁錛屽苟瀵硅繖浜涙暟鎹涓婅繘琛屾搷浣溿傚叧浜庡筓I鎺т歡浜嬩歡鐨勫勭悊錛屾垜浠涔熷笇鏈涜兘鎶婅繖浜涗簨浠跺勭悊緇戝畾鍒版帶浠朵笂錛屽苟鎶婅繖浜涗簨浠剁殑澶勭悊緇熶竴鍖栵紝涓烘ゆ垜浠閫氳繃瀵逛竴浜涘父鐢ㄧ殑浜嬩歡鍋氫簡灝佽咃紝鎶婁竴涓涓浜嬩歡灝佽呮垚涓涓涓狢ommand錛屽逛簬姣忎釜浜嬩歡鎴戜滑鐢ㄤ竴涓鍘誨勭悊灝辮屼簡錛屼細鎶婁綘鍙鑳介渶瑕佺殑鏁版嵁甯︾粰浣狅紝榪欎嬌寰楁垜浠鍦╒iewModel灞傚勭悊浜嬩歡鐨勬椂鍊欏彧闇瑕佸叧蹇冨勭悊鏁版嵁灝辮屼簡錛屽叿浣撹丮VVMLightToolkit浣跨敤鎸囧崡鐨凜ommand閮ㄥ垎銆傚啀寮鴻皟涓閬嶏細ViewModel涓嶅仛鍜孶I鐩稿叧鐨勪簨銆
Model
Model灞傛渶澶х殑鐗圭偣鏄琚璧嬩簣浜嗘暟鎹鑾峰彇鐨勮亴璐o紝涓庢垜浠騫沖父Model灞傚彧瀹氫箟瀹炰綋瀵硅薄鐨勮屼負鎴鐒朵笉鍚屻傚疄渚嬩腑錛屾暟鎹鐨勮幏鍙栥佸瓨鍌ㄣ佹暟鎹鐘舵佸彉鍖栭兘鏄疢odel灞傜殑浠誨姟銆侻odel鍖呮嫭瀹炰綋妯″瀷(Bean)銆丷etrofit鐨凷ervice錛岃幏鍙栫綉緇滄暟鎹鎺ュ彛錛屾湰鍦板瓨鍌(澧炲垹鏀規煡)鎺ュ彛錛屾暟鎹鍙樺寲鐩戝惉絳夈侻odel鎻愪緵鏁版嵁鑾峰彇鎺ュ彛渚沄iewModel璋冪敤錛岀粡鏁版嵁杞鎹㈠拰鎿嶄綔騫舵渶緇堟槧灝勭粦瀹氬埌View灞傛煇涓猆I鍏冪礌鐨勫睘鎬т笂銆
濡備綍鍗忎綔
鍏充簬鍗忎綔錛屾垜浠鍏堟潵鐪嬩笅闈㈢殑涓寮犲浘錛
涓婂浘鍙嶆槧浜哅VVM妗嗘灦涓鍚勪釜妯″潡鐨勮仈緋誨拰鏁版嵁嫻佺殑璧板悜錛屾垜浠浠庢瘡涓妯″潡涓涓鎷嗗垎鏉ョ湅銆傞偅涔堟垜浠閲嶇偣灝辨槸涓嬮潰鐨勪笁涓鍗忎綔銆
ViewModel涓嶸iew鐨勫崗浣溿
ViewModel涓嶮odel鐨勫崗浣溿
ViewModel涓嶸iewModel鐨勫崗浣溿
ViewModel涓嶸iew鐨勫崗浣
鍥2涓璙iewModel鍜孷iew鏄閫氳繃緇戝畾鐨勬柟寮忚繛鎺ュ湪涓璧風殑錛岀粦瀹氬垎鎴愪袱縐嶏細涓縐嶆槸鏁版嵁緇戝畾錛屼竴縐嶆槸鍛戒護緇戝畾銆傛暟鎹鐨勭粦瀹欴ataBinding宸茬粡鎻愪緵濂戒簡錛岀畝鍗曞湴瀹氫箟涓浜涘氨鑳芥妸鏁版嵁鍜屾帶浠剁粦瀹氬湪涓璧蜂簡(濡俆extView鐨則ext灞炴)錛屼絾鏄疍ataBinding妗嗘灦鎻愪緵鐨勪笉澶熷叏闈錛屾瘮濡傝村備綍璁╀竴涓猆RL緇戝畾鍒頒竴涓狪mageView錛岃╄繖涓狪mageView鑳借嚜鍔ㄥ幓鍔犺澆url鎸囧畾鐨勫浘鐗囷紝濡備綍鎶婃暟鎹婧愬拰甯冨矓妯℃澘緇戝畾鍒頒竴涓狶istView錛岃㎜istView鍙浠ヤ笉闇瑕佸幓鍐橝dapter鍜孷iewHolder鐩稿叧鐨勪笢瑗?榪欎簺灝遍渶瑕佹垜浠鍋氫竴浜涘伐浣滃拰綆鍗曠殑灝佽呫侻VVMLightToolkit宸茬粡甯鎴戜滑鍋氫簡涓閮ㄥ垎鐨勫伐浣滐紝璇︽儏鍙浠ユ煡鐪婱VVMLightToolkit浣跨敤鎸囧崡銆傚叧浜庝簨浠剁粦瀹氫篃鏄涓鏍鳳紝MVVMLightToolkit鍋氫簡綆鍗曠殑灝佽咃紝瀵逛簬姣忎釜浜嬩歡鎴戜滑鐢ㄤ竴涓鍘誨勭悊灝辮屼簡錛屼細鎶婂彲鑳介渶瑕佺殑鏁版嵁甯︾粰浣狅紝榪欐牱鎴戜滑澶勭悊浜嬩歡鐨勬椂鍊欎篃鍙鍏沖績澶勭悊鏁版嵁灝辮屼簡銆
鐢卞浘1涓璙iewModel鐨勬ā鍧椾腑鎴戜滑鍙浠ョ湅鍑篤iewModel綾諱笅闈涓鑸鍖呭惈涓嬮潰5涓閮ㄥ垎錛
Context(涓婁笅鏂)
Model(鏁版嵁婧怞avaBean)
DataField(鏁版嵁緇戝畾)
Command(鍛戒護緇戝畾)
ChildViewModel(瀛怴iewModel)
鎴戜滑鍏堟潵鐪嬩笅紺轟緥浠g爜錛岀劧鍚庡啀涓涓璁茶В5涓閮ㄥ垎鏄騫插槢鐢ㄧ殑錛
//Activitycontext;//model錛堟暟鎹婧怞avaBean錛塸rivateNewsService.Newsnews;private.NewstopNews;//鏁版嵁緇戝畾錛岀粦瀹氬埌UI鐨勫瓧孌碉紙datafield錛塸ublicfinal
})publicfinalReplyCommand
});//
ViewModel欏甸潰涔熶笉浼氭湁澶澶氬お鏉傜殑瀛楁點**/publicstaticclassViewStyle{
=newObservableBoolean(true);
=newObservableBoolean(true);
}
Context