1. 程式人生 > >Android 下拉重新整理上拉載入 多種應用場景 超級大放送(上)

Android 下拉重新整理上拉載入 多種應用場景 超級大放送(上)

      關於Android下拉重新整理上拉載入,網上的Demo太多太多了,這裡不是介紹怎麼去實現下拉重新整理上拉載入,而是針對下拉重新整理上拉載入常用的一些應用場景就行了一些總結,包含了下拉重新整理上拉載入過程中遇到的一些手勢衝突問題的解決方法(只能算是拋磚引玉

去年9月的時候,那時自己正在獨立做Android專案。記得剛剛寫完那個ListView列表頁面(木有下拉重新整理,上拉載入),只有一個簡單的分頁功能,就是當ListView滑動到最底部的時候,會去請求下一頁資料,但是沒有那個載入更多的Footerview。公司的那隻產品汪過來看了我實現的效果,說:怎麼沒有下拉重新整理,上拉載入啊,這可是APP的標配啊!

      因為那時候真的太菜,剛會Hello world不久,又要急著趕專案,雖說後來也折騰出來了,但是我非常清楚的記得那時候是非常渴求有人能給我一份完美的Demo啊。後來接觸的東西多了久了,發現其實下拉重新整理,上拉載入很簡單,稍微複雜一點的就在於某些使用場景,需要解決一些手勢衝突問題。所以,希望Demo能夠對那些不熟悉下拉重新整理,上拉載入的童鞋有一點小小的幫助,大神們就飄過吧!

      為什麼Demo中沒有RecyclerView的下拉重新整理上拉載入?

在GIT上也找過一些,自己也嘗試寫過一些Demo,雖說功能也能實現,但效果並不能讓自己滿意,所以這裡就不考慮ReclerView啦!

      為什麼初始化時Item時,沒有滿屏?

      因為目前市面上的一些APP的下拉重新整理上拉載入沒有考慮Item不滿屏的情況,會有一些異常(也許是因為這種情況很少見),即便是Git上,很多人都在用的pull-to-refresh,在Item不滿屏的情況下,上拉載入更多時,Loading的FooterView會緊貼在最後一個Item下面,而不是在螢幕的最底部,個人不太喜歡這種不友好的互動方式。

      因為涉及到的知識點有點雜,很多知識點是不能去在部落格中細細深究的,這裡主要介紹的是Android 下拉重新整理上拉載入 多種應用場景。

      Demo中包含的一些主要的知識點:View和ViewGroup的事件分發機制,DrawerLayout側滑選單,SwipeListView滑動刪除,瀑布流照片牆效果(參考

大神郭霖的程式碼,做了少許改動),圖片輪播,PagerSlidingTabStrip,TabLayout,VewPager等的使用方法在Demo中會有部分體現,網上關於這些方面的知識點的部落格太多了,我也是向他人學習的,所以建議先熟悉一下上面的知識點,至少看程式碼能夠明白一些吧。

      關於一個下拉重新整理上拉載入控制元件應該注意的地方:

  • 使用方便,能適用於多種情況
  • 解決一些手勢滑動衝突
Demo中包含了一些常見的拉重新整理上拉載入使用場景(QQ,網易,豌豆莢,優酷之類的APP上面都見到,只能說國產的APP長得都太像了)。
  1. 基本ListView下拉重新整理上拉載入
  2. 基本GridView下拉重新整理上拉載入
  3. 基本ScrollView下拉重新整理上拉載入,包含Button,TextView,ImageView
  4. DrawerLayout中ListView下拉重新整理上拉載入,解決DrawerLayout側滑與ListView下拉上拉的手勢衝突
  5. SwipeListView的下拉重新整理上拉載入,解決滑動刪除的Item與ListView下拉上拉的手勢衝突
  6. MultiColumn瀑布流的下拉重新整理上拉載入
  7. ListView+圖片輪播的下拉重新整理上拉載入,解決輪播圖片滑動與ListView下拉上拉的手勢衝突
  8. PagerSlidingTabStrip+ListView+圖片輪播的下拉重新整理上拉載入,解決ViewPager,輪播圖片滑動,ListView下拉上拉的手勢衝突
  9. ……繼續新增未完成

      Demo效果圖:


      看完Demo效果圖就應該上程式碼和Demo原始碼了,因為最近小忙小憂桑,還有一些下拉重新整理上拉載入的應用場景沒寫完,所以程式碼和Demo會在後面的部落格中給出來。

     說好的優化後再上傳,最近實在太忙,就把以前的程式碼放出來了,Sorry……