android scrollview实现上拉刷新,自定义View实现上拉/下拉刷新

阅读: 评论:0

android scrollview实现上拉刷新,自定义View实现上拉/下拉刷新

android scrollview实现上拉刷新,自定义View实现上拉/下拉刷新

1 概述

最近在做项目的时候,需要实现列表的下拉刷新和上拉加载更多的功能,由于项目周期问题,下拉刷新就直接使用了系统提供的SwipeRefreshLayout类,但是SwipeRefreshLayout的实现效果真的是太low了而且无法达到视觉工程师的要求;上拉加载更多则通过在列表的最后添加一个提示上拉加载的item来实现,虽然实现效果达到了视觉工程师的要求但是会使列表的实现变得复杂。最近又被一个同学问起上面的功能有没有简单的实现方式,趁着现在闲暇就通过自定义View(RefreshLayout)实现了上面的功能。

2 RefreshLayout的使用

首先看一下实现效果:

图1

下图是对上图中的下拉刷新和上拉加载更多的流程的概括:

图2

上图中的列表是通过RecyclerView实现的,实现该列表的下拉刷新和上拉加载更多的功能是通过在RecyclerView之上嵌套我自定义的RefreshLayout实现的,使用RefreshLayout的代码如下:

布局activity_l:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/refreshlayout_test"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/recyclerview_test_refresh"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

public class TestRefreshActivity extends AppCompatActivity implements RefreshLayout.OnRefreshStatusListener {

private RefreshLayout testRefreshLayout;

private RecyclerView testRefreshRV;

private MyAdapter adapter;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

setContentView(R.layout.activity_test_refresh);

testRefreshLayout = (RefreshLayout) findViewById(freshlayout_test);

testRefreshLayout.setPullDownPromptLayout(new SamplePullDownPromptLayout(this));

testRefreshLayout.setPullUpPromptLayout(new SamplePullUpPromptLayout(this));

testRefreshLayout.setSupportPullUp(true);

testRefreshLayout.setOnRefreshStatusListener(this);

testRefreshRV = (RecyclerView) findViewById(lerview_test_refresh);

testRefreshRV.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false));

adapter = new MyAdapter();

testRefreshRV.setAdapter(adapter);

}

@Override

public void onPullDownRefresh() {

testRefreshLayout.postDelayed(new Runnable() {

@Override

public void run() {

}

}, 2000);

}

@Override

public void onPullUpRefresh() {

testRefreshLayout.postDelayed(new Runnable() {

@Ov

本文发布于:2024-01-31 19:01:25,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170669888730675.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:自定义   android   scrollview   View
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23