@@ -33,6 +33,99 @@ app gradle
3333 }
3434````
3535
36+ ## Preview
37+
38+ <img src =" /gif/demo1.gif " width =" 280px " /> <img src =" /gif/demo2.gif " width =" 280px " />
39+ <img src =" /gif/demo3.gif " width =" 280px " /> <img src =" /gif/demo4.gif " width =" 280px " />
40+ <img src =" /gif/demo5.gif " width =" 280px " />
41+
42+ ## Feature
43+
44+ ** 1. 支持网络错误,空数据,正在加载,自定义等状态界面(一行代码切换状态)**
45+
46+ ** 2. 注入的方式实现下拉刷新,上拉加载(一行代码)且支持自定义下拉刷新样式**
47+
48+ ** 3. 支持单类型,多类型列表**
49+
50+ ** 4. 支持"单Activity + 多Fragment","多模块Activity + 多Fragment"**
51+
52+ ** 5. 支持透明状态栏**
53+
54+ ** 6. 支持软键盘的状态监听**
55+
56+ ** 7. 支持软键盘触摸非输入区域自动隐藏**
57+
58+ ** 8. 实现可拖动的底部提示框**
59+
60+ ## Example
61+
62+ ````
63+ //效果见图2
64+ @PullToRefresh // 一行代码 注入下拉刷新功能
65+ @PullToLoadMore // 注入上拉加载
66+ public class PullRefreshActivity extends BaseActivity {
67+ // 需要继承 BaseActivity ; 同理 Fragment 继承 BaseFragment ; Dialog 继承 BaseDialog
68+ // 继承的代价太大,后期版本会替换成接口加委托的方式
69+ // 如果本地有维护自己的 Base基类 请注意导包
70+
71+ @Override
72+ protected void initView() {
73+ //抽象方法,必须被重写 初始化控件 调用的先后顺序 initView -> initData
74+ }
75+
76+ @Override
77+ protected void initData() {
78+ //抽象方法,必须被重写 初始化数据
79+ getToolbarView().setTitle(getResources().getString(R.string.refresh));
80+ getToolbarView().setNavigationIcon(R.mipmap.ic_arrow_back_white_24dp);
81+ getToolbarView().setNavigationOnClickListener(new View.OnClickListener() {
82+ @Override
83+ public void onClick(View v) {
84+ finish();
85+ }
86+ });
87+
88+ //初始显示空界面(可以配置空界面的图标和文本)
89+ setState(ViewState.EMPTY, new Object[]{getString(R.string.drag_refresh)});
90+ }
91+
92+ @Override
93+ protected int layoutResId() {
94+ //抽象方法
95+ return 0;
96+ }
97+
98+ @Override
99+ protected void onRefreshing() { //正在刷新
100+ super.onRefreshing();
101+ //rx方式(移除订阅防止泄露)
102+ postUiThread(2000, new UiSubscriber<Long>() {
103+ @Override
104+ public void onCompleted() {
105+ Toast.makeText(PullRefreshActivity.this, getResources().getString(R.string
106+ .mei_refresh_success), Toast.LENGTH_SHORT).show();
107+ PullRefreshActivity.this.setRefreshing(false);
108+ }
109+ });
110+ }
111+
112+ @Override
113+ protected void onLoadingMore() { //正在加载更多
114+ super.onLoadingMore();
115+ postUiThread(2000, new UiSubscriber<Long>() {
116+ @Override
117+ public void onCompleted() {
118+ Toast.makeText(PullRefreshActivity.this, getResources().getString(R.string
119+ .mei_refresh_success), Toast.LENGTH_SHORT).show();
120+ PullRefreshActivity.this.setLoadingMore(false);
121+ }
122+ });
123+ }
124+ }
125+
126+ ````
127+
128+
36129## LICENSE
37130````
38131Copyright 2018 文淑
0 commit comments