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