swipeRefreshLayout 上拉加载 下拉刷新
来源:互联网 发布:linux查看文件系统类型 编辑:程序博客网 时间:2024/05/18 06:23
Main
<android.support.v4.widget.SwipeRefreshLayout android:layout_width="match_parent" android:id="@+id/swipe" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycle"></android.support.v7.widget.RecyclerView> </android.support.v4.widget.SwipeRefreshLayout>
item
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="55dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:layout_gravity="center" android:textSize="16sp" android:text="haahha"/> <ImageView android:layout_width="match_parent" android:layout_height="1dp" android:background="#8080"/></LinearLayout>
Main:
package test.bwie.com.lianximvp;
import android.os.Handler;
import android.service.autofill.Dataset;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
List<String> list= new ArrayList<>();private SwipeRefreshLayout swipeRefreshLayout;private RecyclerView recyclerView;private Myadater myadater;private LinearLayoutManager linearLayoutManager;private int lastVisibleItem;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe); recyclerView = (RecyclerView) findViewById(R.id.recycle); //创建数据 for(int i = 0 ; i < 20 ;i ++){ list.add("第"+i+"条数据"); } linearLayoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(linearLayoutManager); myadater = new Myadater(); recyclerView.setAdapter(myadater); swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { List<String> newDatas = new ArrayList<String>(); for(int j = 0 ; j < 5; j++){ int index = j + 1; newDatas.add("new item" + index); } myadater.addItem(newDatas); swipeRefreshLayout.setRefreshing(false); Toast.makeText(MainActivity.this, "更新了", Toast.LENGTH_SHORT).show(); } },3000); } }); //下拉加载 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); int i = linearLayoutManager.findFirstVisibleItemPosition(); if(newState ==RecyclerView.SCROLL_STATE_IDLE && lastVisibleItem + 1 ==myadater.getItemCount()){ new Handler().postDelayed(new Runnable() { @Override public void run() { List<String> newDatas = new ArrayList<String>(); for (int i = 0; i< 5; i++) { int index = i +1; newDatas.add("more item" + index); } myadater.addMore(newDatas); myadater.notifyDataSetChanged(); } },2000); } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView,dx, dy); lastVisibleItem =linearLayoutManager.findLastVisibleItemPosition(); } });}class Myadater extends RecyclerView.Adapter<Myadater.ViewHolder>{ private static final int TYPE_ITEM =0; //普通Item View private static final int TYPE_FOOTER = 1; //顶部FootView @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item,parent,false)); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.text.setText(list.get(position)); } @Override public int getItemCount() { return list!=null?list.size():0; } class ViewHolder extends RecyclerView.ViewHolder{ TextView text; public ViewHolder(View itemView) { super(itemView); text =(TextView) itemView.findViewById(R.id.tv); } } class Hander extends RecyclerView.ViewHolder{ TextView t; public Hander(View itemView) { super(itemView); t = itemView.findViewById(R.id.tv1); } } // 下拉刷新 public void addItem(List<String> newDatas){ newDatas.addAll(list); list.removeAll(list); list.addAll(newDatas); notifyDataSetChanged(); } // 上拉加载 public void addMore(List<String> Dataset){ list.addAll(Dataset); notifyDataSetChanged(); } @Override public int getItemViewType(int position) { if(position + 1 ==getItemCount()){ return TYPE_FOOTER; } return TYPE_ITEM; }}
}
阅读全文
0 0
- SwipeRefreshLayout 上拉加载与下拉刷新
- SwipeRefreshLayout下拉刷新和上拉加载
- SwipeRefreshLayout上拉加载 下拉刷新
- swipeRefreshLayout 上拉加载 下拉刷新
- SwipeRefreshLayout下拉刷新上拉加载详解
- SwipeRefreshLayout下拉刷新与上拉加载更多,分页加载
- SwipeRefreshLayout实现下拉刷新、上拉加载更多功能
- 原生的上拉刷新 SwipeRefreshLayout和下拉加载
- SwipeRefreshLayout的下拉刷新与上拉加载
- 使用SwipeRefreshLayout实现下拉刷新与上拉加载更多
- Android SwipeRefreshLayout 包含ListView 上拉刷新 下拉加载
- Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
- Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
- RecyclerView和SwipeRefreshLayout下拉刷新和上拉加载
- SwipeRefreshLayout+ListView实现下拉刷新自定义上拉加载
- 自定义下拉刷新上拉加载更多(SwipeRefreshLayout)风格
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- SwipeRefreshLayout + RecyclerView实现上拉加载和下拉刷新
- 欢迎使用CSDN-markdown编辑器
- oracle触发器
- 3-4 计算长方形的周长和面积 sdut-oj
- getspent、setspent和endspent运行出错
- 自定义view解锁
- swipeRefreshLayout 上拉加载 下拉刷新
- Objective-C知识汇总
- 测试去空格
- h5 加载图片后显示的代码分析
- Android OpenGL 显示基本图形及相关概念解读
- POI读取execl的工具类:ExcelReader(解析Excel的工具类)
- Unity世界坐标转为画布坐标
- 根据面要素图层迭代出面要素批量裁切(掩膜提取)影像
- 用Python实现一个简单的文件传输协议