recyclerview

RecycleView多布局的实现

匿名 (未验证) 提交于 2019-12-03 00:22:01
http://www.jianshu.com/p/f6418086a1b3 介绍了RecycleView的简单使用,并实现了RecycleView的点击事件和长按事件,本篇文章主要讲解的是RecycleView实现多布局。 现在来看下效果图如下: [ͼ1.png] 图二: ͼ2.png 图三: 图三巴纽 上图+实现了四种布局:现在来看看主布局XML: <RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http://schemas.android.com/tools" android:layout_width= "match_parent" android:layout_height= "match_parent" android:paddingLeft= "@dimen/activity_horizontal_margin" android:paddingRight= "@dimen/activity_horizontal_margin" android:paddingTop= "@dimen/activity_vertical_margin" android:background= "#E0F2F1" android:paddingBottom= "

Recyclerview刷新数据时焦点丢失

匿名 (未验证) 提交于 2019-12-03 00:22:01
解决措施: recyclerview设置setItemAnimation(null) rvEpgSchList.setItemAnimator( null ); adapter设置setHasStableIds(true) epgSchListAdapter.setHasStableIds( true ); adapter中getItemId()返回position @Override public long getItemId ( int position) { return position; } RcyclerviewA的每个item嵌套recyclerviewB 解决措施: 首先要使整个recyclerview刷新时,焦点能被记住,我们需要手动保存B的当前焦点位置,即在B的adapter中onBindViewHolder方法中对B的itemview设置setOnFocusChangeListener,然后进行一些处理后,记录好B当前焦点Itme的位置 然后每次数据刷新时,B的adapter的onBindViewHolder会被调用,然后判断这时候传入的position是否跟之前存的焦点位置一致,一致的话,让itemview调用requestFocus方法就行。 但是,我们会发现,每次数据刷新时,B都会滚动到初始位置,也就是说如果B滑动了一段距离后

FlexboxLayout的使用

匿名 (未验证) 提交于 2019-12-03 00:19:01
FlexboxLayout 本文是 官方文档 的翻译 FlexboxLayout 是一个库项目,能在Android上实现类似 CSS Flexible Box Layout Module 的能力。 添加以下依赖到你的 build.gradle 文件中: dependencies { implementation 'com.google.android:flexbox:1.0.0' } 在布局中有两种方式使用FlexBox FlexboxLayout 第一种是像 LinearLayout 和 RelativeLayout 那样, FlexboxLayout 都是继承了 ViewGroup 。 你可以指定属性在一个布局XML,如: < com.google.android.flexbox.FlexboxLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:app = "http://schemas.android.com/apk/res-auto" android:layout_width = "match_parent" android:layout_height = "match_parent" app:flexWrap = "wrap" app:alignItems = "stretch

RecyclerView的滚动事件OnScrollListener

匿名 (未验证) 提交于 2019-12-03 00:18:01
RecyclerView的滚动事件OnScrollListener (1)滚动事件分类 列表的滚动一般分为两种: 1.手指按下 -> 手指拖拽列表移动 -> 手指停止拖拽 -> 抬起手指 2.手指按下 -> 手指快速拖拽后抬起手指 -> 列表继续滚动 -> 停止滚动 上面的过程的状态变化如下: 1.静止 -> 被迫拖拽移动 -> 静止 2.静止 -> 被迫拖拽移动 -> 自己滚动 -> 静止 (2)监听RecyclerView的滚动 有两种方式可以监听滚动事件: 1.setOnScrollListener(OnScrollListener listener) //被废弃 2.addOnScrollListener(OnScrollListener listener) 其中 setOnScrollListener 由于可能出现空指针的风险,已经过时。建议用addOnScrollListener。 (3)OnScrollListener /** * An OnScrollListener can be added to a RecyclerView to receive messages when a scrolling event * has occurred on that RecyclerView. * <p> * @see RecyclerView

AndroidStudio的 cannot resolve symbol R (找不到R文件)问题

匿名 (未验证) 提交于 2019-12-03 00:18:01
新建一个工程的时候,工程正常无误,但是通过File-Project Structure...里面的对话框添加依赖项时,遇到annot resolve symbol R(找不到R文件)的问题,搜索网上,发现主要有以下解决方法: 1、rebuild project; 2、重启AndroidStudio软件。 均未解决问题,后发现是app目录下的build.gradle中的 compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:recyclerview-v7:26.0.1' 版本不匹配的原因,通过手动添加依赖项的recyclerview与原版的appcompat版本不一致,后改为 compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:recyclerview-v7:25.3.1' 问题解决。 转载请标明出处: AndroidStudio的 cannot resolve symbol R (找不到R文件)问题 文章来源: AndroidStudio的 cannot resolve symbol R (找不到R文件)问题

RecyclerView的应用及RecyclerView的点击事件

匿名 (未验证) 提交于 2019-12-03 00:15:02
JSONArray jsonArray = jsonObject.getJSONArray("obj"); if (jsonArray.size() > 0) { for (int i = 0; i < jsonArray.size(); i++) { patientID = jb.getInteger("id"); patientPhone = jb.getString("phone"); patientSFZNum = jb.getString("identityno"); PatientPhoneBean patientPhoneBean = new PatientPhoneBean(); patientPhoneBean.setPatientID(patientID); patientPhoneBean.setPatientName(patientName); patientPhoneBean.setPatientPhone(patientPhone); patientPhoneBean.setPatientSFZNum(patientSFZNum); patientPhoneList.add(patientPhoneBean); } phoneBean.setPhoneobj(patientPhoneList); Message message = Message

Android ScrollView与RecyclerView滑动冲突问题

匿名 (未验证) 提交于 2019-12-03 00:14:01
在我们日常开发中经常会用到ScrollView与RecyclerView的组合,但是这种组合有时会出现滑动不流畅的问题,也就是卡顿现象 布局如下: <ScrollView android:layout_width="match_parent" <LinearLayout <android.support.v7.widget.RecyclerView </android.support.v7.widget.RecyclerView> </LinearLayout> </ScrollView> 我们只需要给RecyclerView设置下面两个属性就可以了 注意:(如果是多个RecyclerView,每个都需要设置,并不是设置一个就行了) recyclerView.setHasFixedSize(http://www.amjmh.com); recyclerView.setNestedScrollingEnabled(false); 来源:博客园 作者: 水至清明 链接:https://www.cnblogs.com/hyhy904/p/11667864.html

Android:RecyclerView相关

匿名 (未验证) 提交于 2019-12-03 00:03:02
关键类: Adapter :负责数据的绑定 LayoutManager :负责item的布局 协助RecyclerView完成OnMeasure过程 通过onLayoutChildren完成对子View的布局 滚动子视图 滚动过程中判断何时添加View,何时回收View,也是对缓存时机的判断 ItemDecoration :添加分割线,做一些装饰 RecyclerView :view类,控制缓存 mChangedScrap(屏幕内缓存),数据已变的,在每次view绘制时用到 mAttachedScrap(屏幕内缓存),未与RecyclerView分离的,在adapter.notifyxxx时用到 mCachedViews(屏幕外缓存),ViewHodler缓存列表,默认容量为2,在放不下的时候放入缓存池 ViewCacheExtension,开发中可以自定义的一层缓存 RecycledViewPool,缓存池, SparseArray<ArrayList<ViewHolder>> mScrap ,存入的时候会清除状态,所以再从中取出来的时候需要重新绑定。 ItemAnimator :负责tem的动画 一些可优化操作: 添加Header、Footer(可通过装饰者模式) 下拉加载更多 Item点击事件 Item中控件局部刷新 notifyItemChanged(position

Android笔记――RecyclerView替代ListView

匿名 (未验证) 提交于 2019-12-03 00:03:02
RecyclerView没有提供OnItemClickListener接口,因此要监听列表项点击事件需自行对每个列表项进行设置监听器 ---------------------------------------------------------------------------------------- 1、导入support-v7-RecyclerView的包 2、布局文件添加<android.support.v7.widget.RecyclerView>标签,设置id 3、 控制的Activity对布局的RecyclerView进行实例化并绑定 4、RecyclerView必须设置布局管理器,即setLayoutManager(new XXXLayoutManager(context)) 并为其设置RecyclerView.Adapter作为列表内容 5、重写RecyclerView.Adapter的三个方法 6、自定义类继承ViewHolder,该类作为列表项目,构造函数自定义参数,View类型自定义 ---------------------------------------------------------------------------------------------------------------- 转载于:https://my.oschina

RecyclerView局部刷新数据

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mysky984/article/details/91619245 RecyclerView局部刷新数据 使用adapter.notifyDatasetChanged()刷新导致全部数据都刷新了,如果数据量大的话,使用此方法不但增加了手机内存消耗,还增加了流量消耗。步入正题,现在RecyclerView除了全部刷新的方法之外还提供了单项、多条数据更新的回调方法。经常使用的方法如下: 增加、删除、修改、交换等,常用方法及说明如下: 转载请标明出处: RecyclerView局部刷新数据 文章来源: https://blog.csdn.net/Mysky984/article/details/91619245