当前位置:首页 » 安卓系统 » androidmvp与mvvm

androidmvp与mvvm

发布时间: 2024-04-22 10:30:47

⑴ 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锛塸ublicfinalimageUrl=new<>();publicfinalhtml=new<>();publicfinaltitle=new<>();//涓涓鍙橀噺鍖呭惈浜嗘墍链夊叧浜嵘iewStyle鐩稿叧镄勫瓧娈祊ublicfinalViewStyleviewStyle=newViewStyle();//锻戒护缁戝畾锛坈ommand锛塸ublicfinalonRefreshCommand=newReplyCommand<>(()->{

})publicfinalReplyCommandonLoadMoreCommand=newReplyCommand<>((itemCount)->{

});//itemViewModel=newObservableArrayList<>();/***ViewStyle鍏充簬鎺т欢镄勪竴浜涘睘镐у拰涓氩姟鏁版嵁镞犲叧镄凷tyle鍙浠ュ仛涓涓鍖呰9锛岃繖镙蜂唬镰佹瘆杈幂编瑙傦纴

ViewModel椤甸溃涔熶笉浼氭湁澶澶氩お𨱒傜殑瀛楁点**/publicstaticclassViewStyle{

=newObservableBoolean(true);

=newObservableBoolean(true);

}

Context

热点内容
RDB算法 发布:2024-11-27 14:26:57 浏览:136
悟空数学的原始密码是多少 发布:2024-11-27 14:26:54 浏览:75
php数据库查询json 发布:2024-11-27 14:26:06 浏览:796
可编程控制器课后答案 发布:2024-11-27 14:22:16 浏览:737
60页文件夹 发布:2024-11-27 13:52:59 浏览:884
vivo安卓手机看电影软件哪个最好 发布:2024-11-27 13:52:23 浏览:963
新建的ad域服务器可以修改ip 发布:2024-11-27 13:45:39 浏览:948
银行存钱的密码是多少 发布:2024-11-27 13:40:13 浏览:212
对接协议编程 发布:2024-11-27 13:35:26 浏览:122
matt服务器搭建 发布:2024-11-27 13:33:52 浏览:119