摘要:在區(qū)有不少人建議讓支持橫向刷新。但這在引發(fā)熱議,可能是那些橫向刷新庫的使用功能擴展與有很大差距。所以我自己認為要做橫向刷新庫也需要能夠像一樣的多功能與易擴展。所以一開始的時候我?guī)缀鯖]有開發(fā)橫向刷新功能的想法。
距離上次發(fā)文又過了一年,這次我給大家?guī)砹肆硪粋€開源庫 SmartRefreshHorizontal,下面先看看效果:
傳送門項目地址
屬性文檔
常見問題
更新日志
源碼下載
自定義Header
Demo下載 APK-Demo
效果演示商品詳情 | ViewPager |
---|---|
數(shù)據(jù)演示 |
---|
SmartRefreshLayout 的設計靈活多樣,擴展性高,我想這應該是它受歡迎的原因之一。
在 issue 區(qū)有不少人建議讓 SmartRefreshLayout 支持橫向刷新。
其實大家都知道橫向刷新的庫已經(jīng)有了不少,我給他們的回復是使用其他現(xiàn)有的橫向刷新庫。
但這在 issue 引發(fā)熱議,可能是那些橫向刷新庫的使用、功能、擴展與 SmartRefreshLayout有很大差距。
所以我自己認為要做橫向刷新庫也需要能夠像 SmartRefreshLayout 一樣的多功能與易擴展。
如果直接擴展 SmartRefreshLayout 的功能使其直接支持橫向,將會增加代碼量。
然而當此時它已經(jīng)足夠龐大,并且也有不少人抱怨它太大需要分包細化功能。所以一開始的時候我?guī)缀鯖]有開發(fā)橫向刷新功能的想法。
因為用到橫向刷新的應用場景比豎向刷新少很多,我自己也很少會用到這樣的場景。
如果為了實現(xiàn)一個我自己不常用的功能庫要花費我太多時間和精力實在劃不來,僅僅實現(xiàn)一個簡單的橫向刷新又沒有必要...
終于!有一天我在開發(fā)旋轉(zhuǎn)動畫過程中,產(chǎn)生了一個奇妙的想法:如果把 SmartRefreshLayout 旋轉(zhuǎn)90度會怎樣?
然后開始做試驗:把 SmartRefreshLayout 旋轉(zhuǎn)90度,再把 Content 旋轉(zhuǎn)-90度。結(jié)果竟然真的可以用!!
這樣就不用讓我花大量時間精力去做橫向刷新代碼實現(xiàn),SmartRefreshLayout 原有的所有功能多可以直接使用,
之前設計的十多個 Header 和 Footer 也可以不用任何修改直接使用!這讓我產(chǎn)生了開發(fā)橫向刷新庫的動力。
于是基于這個試驗想法就誕生了這個 SmartRefreshHorizontal 庫 !
SmartRefreshHorizontal 作為 SmartRefreshLayout 的擴展庫,實現(xiàn)了橫向刷新和加載的功能,
雖然是獨立的開源庫,但是并沒有重復做實現(xiàn),
而是對 SmartRefreshLayout 做了封裝和轉(zhuǎn)換,使其支持橫向刷新。
所以 SmartRefreshHorizontal 繼承了 SmartRefreshLayout 所有的特性,只是方向改成了橫向。
明白了 SmartRefreshHorizontal 與 SmartRefreshLayout 的關(guān)系,那么大家在使用本庫的使用同時也要依賴
SmartRefreshLayout,并且版本要大于 1.1.0-beta-1 ,否則會出現(xiàn)找不到類的錯誤。
implementation "com.scwang.smartrefresh:SmartRefreshHorizontal:1.0.0-beta-1" implementation "com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-beta-1"http://必須依賴 版本 1.1.0-beta-1 以上 //androidx implementation "com.scwang.smartrefresh:SmartRefreshHorizontal:1.0.0-andx-1" implementation "com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-andx-16"http://必須依賴 版本 1.1.0-andx-16 以上2. 在XML布局文件中添加 SmartRefreshHorizontal
3. 在 Activity 或者 Fragment 中添加代碼
RefreshLayout refreshLayout = root.findViewById(R.id.refreshLayout); refreshLayout.setRefreshHeader(new MaterialHeader(root.getContext())); refreshLayout.setRefreshFooter(new RefreshFooterWrapper(new MaterialHeader(root.getContext())), -1, -2);混淆
SmartRefreshHorizontal 不需要添加混淆過濾代碼,并且已經(jīng)混淆測試通過,如果你在項目的使用中混淆之后出現(xiàn)問題,請及時通知我。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76045.html
摘要:框架下拉刷新控件還能框架化智能又怎么回事二話不多少先上效果圖,咱們再來探個究竟。下面通過自定義和嵌套作為內(nèi)容來解釋的智能之處。可以看到在列表已經(jīng)滾動到中部時,輕微下拉列表是不會觸發(fā)刷新的,但是如果是觸摸固定的布局,則可以觸發(fā)下拉。 框架?下拉刷新控件還能框架化?智能又怎么回事?二話不多少先上Demo效果圖,咱們再來探個究竟。 Github 傳送門注意:本文僅僅是博客文章,主要用于項目介...
閱讀 3676·2021-11-24 09:39
閱讀 1283·2021-09-30 09:48
閱讀 3273·2021-09-09 11:51
閱讀 2895·2021-09-08 10:41
閱讀 1337·2019-08-30 14:06
閱讀 2806·2019-08-30 14:01
閱讀 882·2019-08-29 17:11
閱讀 3180·2019-08-29 15:37