android-Ultra-Pull-To-Refresh刷新

本文详细介绍了android Ultra-Pull-To-Refresh刷新框架,从源码角度分析PtrFrameLayout及其PtrUIHandler,包括PtrClassicDefaultHeader、MaterialHandler和StoreHouseHeader的使用。并提供了不同风格的刷新效果示例,如StoreHouse和Material Design。同时,文章提供了代码实现示例,指导如何在项目中集成和使用该库。
摘要由CSDN通过智能技术生成

android-Ultra-Pull-To-Refresh刷新

本篇文章是从源码的角度来分析UItraPullToRefresh的刷新,并给出了几个UItraPullToReRefresh几个好看的刷新效果

  • 1.功能介绍
  • 2.功能设计图
  • 3.效果图
  • 4.具体使用

1. 功能介绍

    下拉刷新,几乎是每个 Android 应用都会需要的功能。 android-Ultra-Pull-To-Refresh (以下简称 UltraPTR )便是一个强大的 Andriod 下拉刷新框架。
    主要特点:
        (1).继承于 ViewGroup, Content 可以包含任何 View。
        (2).简洁完善的 Header 抽象,方便进行拓展,构建符合需求的头部。对比 AndroidPullToRefresh 项目,UltraPTR 没有实现 加载更多 的功能,但我认为 **下拉刷新** 和 **加载更多** 不是同一层次的功能, 下拉刷新 有更广泛的需求,可以适用于任何页面。而 加载更多 的功能应该交由具体的 Content 自己去实现。这应该是和 Google 官方推出 SwipeRefreshLayout 是相同的设计思路,但对SwipeRefreshLayout, UltraPTR 更灵活,更容易拓展。

2.功能设计图

这里写图片描述

从上图可以简单的分析一下得出了一点结论

  • 这个刷新框架有一个刷新布局是PtrFrameLayout,这个刷新布局默认是不带刷新头布局的,它的刷新头布局的添加需要依赖于PtrUIHandler来提供
  • PtrUIHandler的实现类有三种,第一种是PtrClassicDefaultHeader,第二种是MaterialHandler,第三种是StoreHouseHeader
  • PtrClassiscFrameLayout是PtrFrameLayout的子类,这个类是带有默认的头布局的,这个头布局是PtrClassicDefault.
  • 在做刷新的时候一定要给这个PtrFrameLayout刷新布局添加下拉刷新监听ptrHandler

3.效果图

使用eclipse的同学请注意, Intellij IDEA / Android Studio 请忽略

demo可以直接在eclipse中运行, 编译demo项目的同学看这里: http://www.liaohuqiu.net/cn/posts/compile-ultra-ptr-in-eclipse/

  • 先上两张StoreHouse风格的截图! 感谢 CBStoreHouseRefreshControl.

  • 5.0 Material 风格 2014-12-09 新增。阴影效果,gif图看起来有些失真,看demo吧!

  • 支持所有的View:

    ListView, GridView, ScrollView, FrameLayout, 甚至 TextView.

  • 支持各种下拉刷新交互.

    • 下拉刷新(iOS风格)

    • 释放刷新(经典风格)

    • 刷新时,头部保持(新浪微博)

    • 自动刷新,进入界面时自动刷新


4.代码具体的书写

注意:使用之前一定要先导入第三方框架:compile ‘com.chanven.lib:cptr:1.1.0’

1.典型的头部效果

实现方式一:因为PtrClassicFrameLayout是PtrFrameLayout的子类,它内部线添加了ClassicHeader所以,直接使用PtrClassicFrameLayout,直接使用即可

  • 布局代码代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!--
    PtrClassicFrameLayout:是继承子PtrFrameLayout
    特点:提供了默认的头部布局
    效果:文字 + 进度控件
-->
<com.chanven.lib.cptr.PtrClassicFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main_ptrClassicFrameLayoutId"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:ptr_resistance="1.7"
    app:ptr_ratio_of_header_height_to
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值