關(guān)于android 動態(tài)表單這一塊很少資料提及昆雀,簡而言之就是:公司需要做這么一個功能辱志,公司需要動態(tài)地下發(fā)產(chǎn)品流程,尤其是金融類別的公司狞膘,比如今天需要填寫某某信息揩懒,然后明天突然覺得這個字段沒必要了,又要修改挽封,那么問題來了已球,你的app已經(jīng)打出去了,如何進行修改呢辅愿?于是就有了動態(tài)這個概念智亮,簡而言之,這是一種熱更新点待。熱更文件阔蛉,實現(xiàn)app的界面變化,從而達到自己的需求癞埠。
先上個實現(xiàn)圖:
動態(tài)表單.png
步驟 1:從json文件里面定義好各組件的名稱状原,并用原生代碼實現(xiàn)
2:實現(xiàn)完了控件之后,定義一個加載的activity苗踪,然后去讀json文件颠区,顯示為界面UI
3:每個控件都有相應(yīng)的eventbus的回調(diào)監(jiān)聽,等待控制器給他們發(fā)指令徒探,如果接收到了就校驗
4:校驗成功后瓦呼,控件會回傳一個map給數(shù)據(jù)源,這個數(shù)據(jù)源就是最終你提交給服務(wù)器的map测暗。
優(yōu)點:1.動態(tài)化操作央串,只需更新json文件中的表單,即可實現(xiàn)UI的動態(tài)變化
2.開發(fā)穩(wěn)定后碗啄,只需維護json表單就可以做到兩端的更新质和,節(jié)省人力
3.你無需關(guān)心多個控件的組合檢驗,eventbus會通知他們稚字,省了很多的非空校驗和代碼冗余
4.你無需寫多個重復(fù)的頁面或者activity
缺點:
1.開發(fā)的時候調(diào)試有點麻煩饲宿,你是面向控件調(diào)試
2.如果是產(chǎn)品沒規(guī)律的話,那么控制器需要寫很多的邏輯胆描,這些邏輯都在同一個文件里面瘫想,很容易造成各種
錯誤。而且需要用一些硬編碼來控制邏輯昌讲。顯得代碼多了很多硬編碼国夜。