文档章节

RecyclerView

T
 Taian
发布于 2016/04/11 14:23
字数 277
阅读 34
收藏 0

初始化相关设置

private RecyclerView mRecyclerView;
private LinearLayoutManager mLinrarLayoutManeger; // 布局管理器
private SwipeRefreshLayout mSwipeRefreshLayout; // 下拉刷新
mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
mLayoutManager = new LinearLayoutManager(getActivity()); // 在此可设置显示样式
mRecyclerView.setLayoutManager(mLayoutManager);
mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh);
mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright); // 设置下拉刷新按钮的颜色
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { // 监听下拉事件
    @Override
    public void onRefresh() {
        mSwipeRefreshLayout.setRefreshing(false); // 关闭下拉按钮
    }
});
 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { // 滚动到底部监听器
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (newState == RecyclerView.SCROLL_STATE_IDLE && lastVisibleItem + 1 == mAdapter.getItemCount()) {
//                    swipeRefreshLayout.setRefreshing(true);
                    Log.e(TAG, "onScrollStateChanged");
                }
            }
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                lastVisibleItem = mLayoutManager.findLastVisibleItemPosition();
            }
        });

 布局文件

 <android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe_refresh"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ></android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>

Gradle配置

compile "com.android.support:recyclerview-v7:23.0.1"

Adapter

 
private final LayoutInflater mLayoutInflater;
public class NormalRecyclerViewAdapter extends RecyclerView.Adapter<NormalRecyclerViewAdapter.NormalViewHolder> {

     public NormalRecyclerViewAdapter (Context context) {
            mContext = context;

            mLayoutInflater = LayoutInflater.from(context);
        }
     @Override
     public NormalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // 绑定布局
          return new NormalTextViewHolder(mLayoutInflater.inflate(R.layout.adapter_celebrity_recyclerview, parent, false));
        }
    
        @Override
        public void onBindViewHolder(NormalTextViewHolder holder, int position) {// 绑定内容
                holder.nameTv.setText(names.get(position));
        }
   
        @Override
        public int getItemCount() {  // 返回item数
            return names == null ? 0 : names.size();
        }
    public static class NormalViewHolder extends RecyclerView.ViewHolder {
        public DraweeView photo;
        public TextView nameTv;
        NormalTextViewHolder(View view) {
            super(view);
            photo = (DraweeView) view.findViewById(R.id.iv_photo_sd);
            nameTv = (TextView) view.findViewById(R.id.tv_name);
            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.d("NormalTextViewHolder", "onClick--> position = " + getPosition());
                }
            });
        }
    }
}

 

 

© 著作权归作者所有

上一篇: Fresco图片显示
下一篇: VideoView
T
粉丝 2
博文 20
码字总数 5395
作品 0
厦门
私信 提问
RecyclerView的两种加载更多的写法比较

关于RecyclerView的加载更多(重写RecyclerView.OnScrollListener),网上普遍有两种写法,来分析下两种写法的优劣: 第一种,代码如下,这种方法的原理是当RecyclerView持有的Item数量减去可见的I...

fantasiter
2016/06/30
45
0
赵彦军/RecyclerView

RecyclerView RecyclerView不再负责显示工作,用法比ListView更解耦。和ListView不一样的是,RecyclerView不再负责Item的摆放等显示方面的功能。所有和布局、绘制等方面的工作Google都其拆分成...

赵彦军
2016/12/02
0
0
android之recyclerview的基本使用

Google在推出Android5.0的时候推出了Material Design ,而RecyclerView是Material Design 重要组件之一。当然还有CardView/Palette。 RecyclerView是用来替换传统的ListView和GridView,瀑布流...

墨宇hz
2016/03/21
0
0
Android Material风格的应用(二)--RecyclerView

添加RecyclerView Android Material风格的应用(一)--AppBar TabLayout Android Material风格的应用(二)--RecyclerView Android Material风格的应用(三)--DrawerLayout Android Material风格的......

coderminer
2016/11/14
87
0
Android控件RecyclerView和ListView的异同

在我的一篇介绍Android新控件RecyclerView的博客( Android L新控件RecyclerView简介 )中,一个读者留言说RecyclerView跟ListView之间好像没有什么不同,我觉得这是一个好问题,应该明确地区...

小克898
2016/08/16
34
0

没有更多内容

加载失败,请刷新页面

加载更多

官方来源的 Duo Mobile App 解决了我的 Network Difficulties 问题

https://help.duo.com/s/article/2094?language=en_US 我利用百度搜索下载了一个 Duo Mobile App (由于 Google Play)在大陆不可用。 在扫描旧手机上的 Duo Mobile App 的二维码时, 显示出错...

圣洁之子
3分钟前
1
0
Zabbix监控Mysql容器(Docker容器)主从是否存活

1、在Zabbix Web端创建模板

abowu
5分钟前
1
0
基于 RocketMQ 的同城双活架构在美菜网的挑战与实践

本文整理自李样兵在北京站 RocketMQ meetup分享美菜网使用 RocketMQ 过程中的一些心得和经验,偏重于实践。 嘉宾李样兵,现就职于美菜网基础服务平台组,负责 MQ ,配置中心和任务调度等基础...

大涛学长
11分钟前
1
0
设计模式之:外观模式和桥接模式

作者:DevYK 链接:https://juejin.im/post/5d7e01f4f265da03b5747aac 外观模式 介绍 外观模式 (Facade) 在开发过程中的运用评率非常高,尤其是在现阶段,各种第三方 SDK “充斥” 在我们周边...

Java架构Monster
12分钟前
1
0
人证合一核验设备

人脸身份验证机,人证合一设备1:N如我们现在在车站或一些重要的场所如步行街、城中村等人流密集的场所应用的人脸识别布控系统,其特点是动态和非配合。所谓的动态也就是识别的不是照 片,不是...

非思丸智能
14分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部