古詩詞大全網 - 成語解釋 - android-ultra-pull-to-refresh支持上下拉嗎

android-ultra-pull-to-refresh支持上下拉嗎

導入方法:  下拉刷新,幾乎是每個 Android 應用都會需要的功能。 android-Ultra-Pull-To-Refresh (以下簡稱 UltraPTR )便是壹個強大的 Andriod 下拉刷新框架。  主要特點:  (1).繼承於 ViewGroup , Content 可以包含任何 View 。  (2).簡潔完善的 Header 抽象,方便進行拓展,構建符合需求的頭部。  對比 Android-PullToRefresh 項目,UltraPTR 沒有實現 加載更多 的功能,但我認為 下拉刷新 和 加載更多 不是同壹層次的功能, 下拉刷新 有更廣泛的需求,可以適用於任何頁面。而 加載更多 的功能應該交由具體的 Content 自己去實現。這應該是和 Google 官方推出 SwipeRefreshLayout 是相同的設計思路,但對比 SwipeRefreshLayout , UltraPTR 更靈活,更容易拓展。  2. 總體設計  UltraPTR 總體設計比較簡單清晰。  首先抽象出了兩個接口,功能接口和 UI 接口。  PtrHandler 代表下拉刷新的功能接口,包含刷新功能回調方法以及判斷是否可以下拉的方法。用戶實現此接口來進行數據刷新工作。  PtrUIHandler 代表下拉刷新的 UI 接口,包含準備下拉,下拉中,下拉完成,重置以及下拉過程中的位置變化等回調方法。通常情況下, Header 需要實現此接口,來處理下拉刷新過程中頭部 UI 的變化。  整個項目圍繞核心類 PtrFrameLayout 。 PtrFrameLayout 代表了壹個下拉刷新的自定義控件。  PtrFrameLayout 繼承自 ViewGroup ,有且只能有兩個子 View ,頭部 Header 和內容 Content 。通常情況下 Header 會實現 PtrUIHandler 接口, Content 可以為任意的 View 。  和所有的自定義控件壹樣, PtrFrameLayout 通過重寫 onFinishInflate , onMeasure , onLayout 來確定控件大小和位置。通過重寫 dispatchTouchEvent 來確定控件的下拉行為。  3. 流程圖  請參照4.1.5 PtrFrameLayout 事件攔截流程圖  4. 詳細設計  4.1 核心類功能介紹  4.1.1 PtrHandler.java  下拉刷新功能接口,對下拉刷新功能的抽象,包含以下兩個方法。  public void onRefreshBegin(final PtrFrameLayout frame)  刷新回調函數,用戶在這裏寫自己的刷新功能實現,處理業務數據的刷新。  public boolean checkCanDoRefresh(final PtrFrameLayout frame, final View content, final View header)  判斷是否可以下拉刷新。 UltraPTR 的 Content 可以包含任何內容,用戶在這裏判斷決定是否可以下拉。  例如,如果 Content 是 TextView ,則可以直接返回 true ,表示可以下拉刷新。  如果 Content 是 ListView ,當第壹條在頂部時返回 true ,表示可以下拉刷新。  如果 Content 是 ScrollView ,當滑動到頂部時返回 true ,表示可以刷新。