package com.am.recyclerviewtest;
import android.graphics.Color;
import android.graphics.Rect;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
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.LinkedList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
private RecyclerView mRecyclerView;
private TextView mTvAdd;
private TextView mTvRemove;
private List<DataBean> mDatas;
private TestAdapter mAdapter;
private SwipeRefreshLayout mSwipeRefresh;
private LinearLayoutManager linearLayoutManager;
private int mLastVisibleItemPosition;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTvAdd = (TextView) findViewById(R.id.mTvAdd);
mTvAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAdapter.addData(1);
}
});
mTvRemove = (TextView) findViewById(R.id.mTvRemove);
mTvRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAdapter.removeData(1);
}
});
mRecyclerView = (RecyclerView) findViewById(R.id.mRecycler);
initData();
linearLayoutManager = new LinearLayoutManager(MainActivity.this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); // 设置布局管理器 GridView
mRecyclerView.addItemDecoration(new DividerGridItemDecoration(MainActivity.this)); // 设置分割线
mRecyclerView.setItemAnimator(new DefaultItemAnimator()); // 设置item动画
mRecyclerView.setAdapter(mAdapter = new TestAdapter(MainActivity.this,mDatas));
mAdapter.setOnItemClickLitener(new TestAdapter.OnItemClickLitener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(MainActivity.this,"点击:"+position,Toast.LENGTH_SHORT).show();
}
@Override
public void onItemLongClick(View view, int position) {
Toast.makeText(MainActivity.this,"长按:"+position,Toast.LENGTH_SHORT).show();
}
});
// 刷新
mSwipeRefresh = (SwipeRefreshLayout) findViewById(R.id.mSwipeRefresh);
// 刷新的时候的颜色
mSwipeRefresh.setColorSchemeResources(
R.color.google_blue,
R.color.google_green,
R.color.google_red,
R.color.google_yellow
);
// implements SwipeRefreshLayout.OnRefreshListener
mSwipeRefresh.setOnRefreshListener(this); //复写onRefresh方法 做下拉刷新
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
int[] lastVisibleItem;
int lastItem;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView,newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE
&& mLastVisibleItemPosition + 1 == mAdapter.getItemCount()) {
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
mLastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();
}
});
}
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
DataBean addTemp = new DataBean();
addTemp.title = "标题 下拉新增";
addTemp.desc = "desc 下拉新增";
mDatas.add(0,addTemp);
mAdapter.notifyDataSetChanged();
mSwipeRefresh.setRefreshing(false); //
}
}, 1000);
}
protected void initData()
{
mDatas = new ArrayList<DataBean>();
DataBean dataBean = null;
for (int i = 0; i < 20; i++)
{
dataBean = new DataBean();
dataBean.title = "标题 "+i;
dataBean.desc = "描述一下 "+i;
mDatas.add(dataBean);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
RecyclerView/列表/多行/瀑布/CardView/动画/上下拉刷新
共58个文件
xml:29个
java:9个
png:5个
5星 · 超过95%的资源 需积分: 50 37 下载量 32 浏览量
2016-07-08
14:57:47
上传
评论 2
收藏 125KB ZIP 举报
温馨提示
RecyclerView/列表/多行/瀑布/CardView/动画/上下拉刷新 http://www.jianshu.com/p/b4d1bfd55ae9
资源推荐
资源详情
资源评论
收起资源包目录
RecyclerViewTest.zip (58个子文件)
RecyclerViewTest
gradlew 5KB
settings.gradle 16B
RecyclerViewTest.iml 947B
.idea
libraries
junit_4_12.xml 477B
recyclerview_v7_23_4_0.xml 595B
hamcrest_core_1_3.xml 526B
support_vector_drawable_23_4_0.xml 635B
support_v4_23_4_0.xml 724B
cardview_v7_23_4_0.xml 575B
design_23_4_0.xml 550B
appcompat_v7_23_4_0.xml 580B
animated_vector_drawable_23_4_0.xml 640B
support_annotations_23_4_0.xml 485B
runConfigurations.xml 564B
misc.xml 1009B
compiler.xml 686B
workspace.xml 138KB
gradle.xml 739B
.name 16B
encodings.xml 159B
modules.xml 369B
copyright
profiles_settings.xml 76B
gradle
wrapper
gradle-wrapper.properties 231B
gradle-wrapper.jar 52KB
local.properties 422B
gradlew.bat 2KB
gradle.properties 872B
.gitignore 105B
app
src
androidTest
java
com
am
recyclerviewtest
ApplicationTest.java 366B
test
java
com
am
recyclerviewtest
ExampleUnitTest.java 330B
main
AndroidManifest.xml 693B
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
drawable
layout
item_recy_test.xml 2KB
activity_refresh.xml 586B
item_foot.xml 786B
activity_main.xml 1KB
item_base.xml 850B
values-w820dp
dimens.xml 364B
values
colors.xml 406B
strings.xml 84B
styles.xml 394B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 8KB
java
com
am
recyclerviewtest
refresh
RecyclerViewAdapter.java 3KB
RefreshActivity.java 5KB
RecycleViewDivider.java 5KB
DividerGridItemDecoration.java 5KB
MainActivity.java 5KB
TestAdapter.java 5KB
DataBean.java 156B
libs
app.iml 10KB
.gitignore 8B
build.gradle 777B
proguard-rules.pro 657B
build.gradle 521B
共 58 条
- 1
资源评论
- 飒行2017-08-12demo内容详细
- rexih2016-09-30demo内容详细
阿敏其人
- 粉丝: 7
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Sora AI-关于文生视频的使用场景说明
- suno AI文生视频的相关教程和介绍使用
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
- Ultimate Seating Controller 终极座椅控制器Unity游戏开发插件资源unitypackage
- 什么是人工智能-关于人工智能的相关介绍说明
- Figma Converter for Unity适用Unity的Figma转换器Unity游戏开发插件unitypackage
- Creepy Animatronic Anims 令人毛骨悚然的电子动画Unity游戏动画插件资源unitypackage
- Rankings & Leaderboards 排名和排行榜Unity游戏开发插件资源unitypackage
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功