亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

如何為你的Activity減輕負擔

2019-11-09 15:51:07
字體:
來源:轉載
供稿:網友

前言

我們都知道哈,如果一個界面的邏輯夠復雜,那么你的Activity如果在不進行優化或者細分的情況下的代碼量會異常的多,那么現在博客就和大家來討論一下如何給activity減輕負擔!

分析為何Activity的代碼會很多

為什么我們的Activity中的代碼會很多呢?這是因為在activity里面你既要寫 顯示View的邏輯、數據處理的邏輯、網絡請求的邏輯、可能還有其他亂七八糟的邏輯, 那么我們知道問題的所在,為什么不主動去優化呢?

解決辦法

使用MVP模式或者MVVM模式細分Activity中的功能可以抽取的功能一定要抽取出來,封裝成為工具類或者類庫

下面針對每一種解決辦法都舉例一兩個例子作為參考

使用MVP模式或者MVVM模式這里就不陳述了,請自行查閱其他資料,Android官方也有哦(MVP)

細分Activity中的功能

需求:假設現在我現在有一個界面,整個是一個列表,然后最上面有一個輪播圖顯示多張的圖片 輪播圖每一個圖片點擊會跳轉到其他頁面

那么我們現在就知道列表的每一個Item顯示都是一樣的,寫一個適配器就夠了 上面的輪播圖,如果我們使用ListView的話,可以添加頭部視圖的方法可以加到列表的最上面 那么很多人就很自然的把顯示輪播圖的邏輯全寫在Activity中,如果需求就如我所說的這么一點,那么這么寫也是可以的,因為夠簡單就沒必要優化 但是如果你的列表頁面像淘寶一樣復雜呢? 如果你負責實現列表的顯示,另一個人負責實現輪播圖的展示呢?

所以這時候你可以這樣子做一個分解!添加到ListView頭部的就是一個HeaderView,那么你完全可以把這部分的實現給分離出去,比如建立一個MyHeader的類,這個類可以根據顯示的數據data創建出View并且返回,如下

public class MyHeader { PRivate Context mContext; public MyHeader(Context context) { mContext = context; } /** * 顯示數據到View * * @param imagesPath * @return */ public View init(List<String> imagesPath) { View contentView = View.inflate(mContext, R.layout.header, null); //這里實現展示輪播圖的邏輯 //比如先找到ViewPager,然后創建顯示的適配器 //ViewPager vp = (ViewPager) contentView.findViewById(R.id.vp); //............... return contentView; }}

真實的情況下肯定沒有這么簡單,比如這里面你需要對ViewPager的每一個View進行點擊事件的監聽,然后實現跳轉的邏輯,你會發現,你的這寫代碼都沒寫在Activity中 在Activity中只要獲取到輪播圖的數據,調用init方法,拿到需要顯示的View,添加到ListView的Header中就可以了,只要和輪播圖有關的代碼都被抽取到MyHeader中來實現,你的Activity中的代碼能不減少么?

這種方式不僅僅用于舉例的這種情況,你可以用于很多情況,只要你對你要展示的View進行一個劃分就可以了 比如頁面根據參數有兩種展示的情況的,非常適合這么做 比如頁面需要發送多個請求,每一個請求顯示在一塊區域中 等等。。。。。。。

上述的例子就是對列表的頭部的輪播圖進行了一個劃分!

抽取代碼成為工具類或者類庫

這個說法相信對所有的人都很熟悉,其實我們平常中可以封裝的東西有很多很多,不僅可以讓代碼看上去更簡潔,而且可以讓代碼量也有說減少 比如土司一個提示:封裝過之后

T.show(mContext,"提示");

這么做的好處還有一個就是可以統一管理,你想要關閉或者開啟都會非常的方便

同樣的,測試輸出也是一樣的

可以使用通用的一些適配器,避免每次寫重復代碼


然后再舉例一個比較經典的例子:更換頭像

相信這個功能很多人都做過,從本地選擇一個圖片,然后上傳這個圖片到服務器,圖片可能是需要裁剪過的,也可能是拍照再裁剪 有很多人是這么做的: 拍照為一個入口去實現這個邏輯 選擇本地圖片為一個入口去實現這個邏輯

其實對于上述的需求,無非就是一句話:拿到一張圖片裁剪過的路徑

所以針對這句話,你可以想到的封裝一個類庫啊!這個類庫集拍照、裁剪、預覽、圖片放大等等功能,這個庫的輸出就是多張圖片的路徑

這也就是為什么需要使用一些好用的第三方庫來實現這樣子的功能,你會發現你的代碼會變的很簡單簡單,你根本不需要想任何事情,你只需要開啟這個類庫,拿到返回值(圖片路徑)就可以了

有些人又會想,我想要圖片裁剪層指定大小還不是要我自己拿到圖片再做操作,其實這都應該是圖片選擇框架(類庫)的事情,你在開啟圖片選擇框架(類庫)的時候完全可以開啟裁剪功能和指定裁剪的大小,那么這個就根本不是問題 還是回歸到了最開始說的那句話:拿到一張圖片裁剪過的路徑

總結

代碼優化是需要你去思考的,以上都是我個人從編程以來自己一步一步總結過來的,所以如果你想寫出高質量、高可讀的代碼,請你多思考.歡迎大家在評論去留言討論哦

--小金子
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄色av网| 日韩免费av一区二区| 亚洲系列中文字幕| 亚洲日本成人网| 亚洲精品第一页| 欧美国产亚洲精品久久久8v| 日韩欧美在线观看视频| 欧美在线观看www| 日韩欧美精品网址| 91在线免费观看网站| 欧美日韩ab片| 国产欧美日韩精品在线观看| 亚洲一区二区少妇| 夜夜嗨av色综合久久久综合网| 亚洲精品国产品国语在线| 精品电影在线观看| 91久久国产精品| 国产免费一区视频观看免费| 蜜臀久久99精品久久久无需会员| 色综合久久88| 亚洲国产又黄又爽女人高潮的| 77777亚洲午夜久久多人| 久久精品国产亚洲精品2020| www.久久撸.com| 亚洲午夜激情免费视频| 3344国产精品免费看| 欧美日韩爱爱视频| 日韩欧美主播在线| 欧美精品中文字幕一区| 日韩欧美国产成人| 国产91精品久久久久久久| 国产一区二区三区日韩欧美| 欧美日韩aaaa| 午夜精品理论片| 日韩av免费在线看| 国模视频一区二区| 97香蕉超级碰碰久久免费软件| 国产精品久久久久久久久免费看| www欧美xxxx| 成人久久久久久久| 亚洲自拍欧美色图| 亚洲精品视频免费在线观看| 日韩av中文字幕在线| 欧美精品免费播放| 国产精品久久久久久久久久久不卡| 久久av在线播放| 日韩精品丝袜在线| 一区二区三区国产在线观看| 亚洲国产日韩欧美综合久久| 日本一区二区三区四区视频| 欧美黑人巨大xxx极品| 国产精品美女呻吟| 亚洲欧美第一页| 亚洲性线免费观看视频成熟| 国产精品一区久久| 俺也去精品视频在线观看| 久久久久久久久久久国产| 日韩精品免费在线播放| 日韩欧美在线播放| 98精品国产自产在线观看| 97视频免费在线观看| 色综合久久悠悠| 国产第一区电影| 91成人精品网站| 成人av电影天堂| 91av在线视频观看| 这里只有视频精品| 欧美一区二区三区免费视| 亚洲影视九九影院在线观看| 91精品美女在线| 亚洲欧美在线磁力| 欧美高清一级大片| 热久久99这里有精品| 国产精品尤物福利片在线观看| 亚洲一区二区久久久| 国产精品吊钟奶在线| 国产99在线|中文| 日韩大陆欧美高清视频区| 国产精品美女午夜av| 国产精品视频区| 亚洲国产精品电影在线观看| 久久久91精品国产| 日韩精品免费在线视频观看| 欧美黄色三级网站| 日本韩国欧美精品大片卡二| 久久久精品视频在线观看| 久久久精品一区二区三区| 91亚洲va在线va天堂va国| 一个色综合导航| 亚洲国产精品久久久| 国产日韩欧美在线观看| 国产精品九九久久久久久久| 国产精品综合不卡av| 欧美大片免费观看在线观看网站推荐| 亚洲视频综合网| 狠狠爱在线视频一区| 国产精品va在线播放| 久久99久久亚洲国产| 欧美日韩亚洲精品一区二区三区| 国产精品视频成人| 一本色道久久综合狠狠躁篇的优点| 日韩精品视频在线观看免费| 久久久久久久久久久国产| 国产午夜精品全部视频在线播放| 日韩av大片在线| 91精品久久久久久久久久入口| 亚洲成人动漫在线播放| 国内精品久久久| 在线观看精品国产视频| 国产欧美日韩丝袜精品一区| 日本一区二三区好的精华液| 国产精品国语对白| 国产精品91视频| 国产一区av在线| 国产精品女人久久久久久| 欧美性猛交xxxx乱大交蜜桃| 91在线精品视频| 亚洲国产小视频在线观看| 欧美成在线视频| 国产色综合天天综合网| 亚洲字幕在线观看| 大伊人狠狠躁夜夜躁av一区| 国内精品久久久久影院 日本资源| 神马久久桃色视频| 欧美成年人视频网站欧美| 国产成人精品视频在线| 欧美激情精品久久久久久免费印度| 亚洲综合视频1区| 亚洲影影院av| 久久久久国产精品免费网站| 精品久久久香蕉免费精品视频| 精品亚洲va在线va天堂资源站| 精品免费在线视频| 亚洲偷熟乱区亚洲香蕉av| 亚洲欧美成人一区二区在线电影| 欧美在线视频免费观看| 欧美最猛性xxxxx(亚洲精品)| 日本欧美一级片| 北条麻妃久久精品| 国产91热爆ts人妖在线| 亚洲欧美在线x视频| 国产精选久久久久久| 久久99精品久久久久久琪琪| 日韩视频一区在线| 91亚洲午夜在线| 亚洲精品欧美日韩专区| 成人久久18免费网站图片| 精品亚洲夜色av98在线观看| 欧美黄网免费在线观看| 6080yy精品一区二区三区| 精品福利在线观看| 日日摸夜夜添一区| 亚洲成av人影院在线观看| 青青精品视频播放| 久久九九精品99国产精品| 色妞色视频一区二区三区四区| 日韩欧美在线一区| 91免费欧美精品| 久久视频免费在线播放| 日韩精品视频免费| 亚洲国产精品成人精品| 亚洲人精选亚洲人成在线| 夜色77av精品影院| 黑人精品xxx一区|