本文实例为大家分享了android实现RecyclerView列表单选功能的具体代码,供大家参考,具体内容如下 实现思维 1.首先在一行的xml布局中添加一个选中效果的icon图片,未选中的情况下INVISIBLE...或者GONE 都可以,推荐使用INVISIBLE它会占用布局位置但是不显示,这样可以避免布局中其他控件因为勾选布局的消失而轻微变动位置 2.将适配器类中的onCreateViewHolder方法重写添加按键监听...,onBindViewHolder方法中重写添加判断点击的位置(具体原理请查看下面贴的代码) PS: RecyclerView的实现全部方法就不贴出来了,本人的博客中有RecyclerView各种实现效果文章...1.首先在一行的xml布局中添加一个选中效果的icon图片,未选中的情况下INVISIBLE或者GONE 都可以,推荐使用INVISIBLE它会占用布局位置但是不显示,这样可以避免布局中其他控件因为勾选布局的消失而轻微变动位置...2.将适配器类中的onCreateViewHolder方法重写添加按键监听,onBindViewHolder方法中重写添加判断点击的位置(具体原理请查看下面贴的代码) package com.example.lenovo.mydemoapp.myDeviceList
本文介绍了Android中RecyclerView实现Item添加和删除的代码示例,分享给大家,具体如下: 先上效果图: ?...Adapter:使用RecyclerView之前,你需要一个继承自RecyclerView.Adapter的适配器,作用是将数据与每一个条目的界面进行绑定。...LayoutManager:用来确定每一个item如何进行排列摆放,何时展示和隐藏。...RecyclerView-Item添加: 在适配器中加入如下代码: // 添加数据 public void addData(int position) { // 在list中添加数据,并通知条目加入一条...); //外面的控件的删除 adapter. removeData(position); 需要注意的是我再删除动画的下面加了notifyDataSetChanged();代码,因为我们在删除条目时不一定是按照顺序删除的
中增加样式 <!...先创建动画文件,在模块中的anim文件 加下 item_animation_from_bottom.xml <?xml version="1.0" encoding="utf-8"?...(controller); recyclerView.getAdapter().notifyDataSetChanged(); recyclerView.scheduleLayoutAnimation...(controller); recyclerView.getAdapter().notifyDataSetChanged(); recyclerView.scheduleLayoutAnimation...ImageView areaBack,ImageView cityBack,TextView windowTitle) { //初始化省数据 读取省数据并显示到列表中 try
中增加样式 <!...先创建动画文件,在模块中的anim文件 加下 ? item_animation_from_bottom.xml <?xml version="1.0" encoding="utf-8"?...(controller); recyclerView.getAdapter().notifyDataSetChanged(); recyclerView.scheduleLayoutAnimation...(controller); recyclerView.getAdapter().notifyDataSetChanged(); recyclerView.scheduleLayoutAnimation...*/ private void initCityData(RecyclerView recyclerView,ImageView areaBack,ImageView cityBack
的适配基类: /** * recyclerView适配器基类 */ public abstract class BaseRecyclerAdapter<T extends RecyclerView.Adapter...public boolean containsAll(List<T items) { return mItems.containsAll(items); } /** * 更新指定行数据...== null) return; mItems.set(position, tasks); notifyItemChanged(position); } /** * 更新全部数据...setOnItemClickListenerData(OnRecyclerViewItemClickListenerData listener) { listenerData = listener; } } 显示选择的图片的适配器...layout_height="230px" android:layout_marginBottom="28.8px" app:scale="1" / </LinearLayout Activity中的代码
------------------------ 那么让我们通过一些Demo来了解RecyclerView的基本使用 android studio build.gradle文件中 dependencies...中添加 compile 'com.android.support:recyclerview-v7:22.+' 首先,要导入support-v7 包 import android.support.v7....; //自定义适配器,继承RecyclerView.Adapter 接着我们必须要自定义一个ViewHolder,这个ViewHolder 必须要继承 RecyclerView.ViewHolder...extends RecyclerView.Adapter{ 在自定义适配器MyRecycleAdapter中,首先要写一个构造方法,因为有数据源,所有构造方法里必然有List...首先看一下以往我们对listview,gridview等等的删除某一项的操作 先在数据源中删除该位置的数据,然后刷新整个适配器,那么就可能会造成列表闪屏的问题,还有为了删除添加一个数据项而操作整个数据源的问题
ListView实现局部刷新 我们都知道ListView通过adapter.notifyDataSetChanged()实现ListView的更新,这种更新方法的缺点是全局更新,即对每个Item View...只提供了notifyDataSetChanged()更新整个视图,这是很不合理的。...其实万能适配器的概念在ListView就已经存在了,即base-adapter-helper。 这里我们只针对RecyclerView,聊聊万能适配器出现的原因。...Google在sample中给了一个参考的实现类:DividerItemDecoration,这里我们通过分析这个例子来看如何自定义Item Decoration。...实现中需要注意的点有: 我们为ToolBar的app:layout_collapseMode设置为pin,表示折叠之后固定在顶端,而为ImageView的app:layout_collapseMode设置为
本文实例为大家分享了Android实现可拖拽列表和多选的具体代码,供大家参考,具体内容如下 这是我已经完成的一个已经上线的OA软件的一个模块,这个模块的功能不多,已经放到GitHub上面开源了,有感兴趣的朋友可以看看...false * 3.切换编辑状态要把isEditable的值取反,并改变复选框图标状态 * 4.在编辑状态下,按返回键回到非编辑状态 * 5.RecyclerView的点击事件通过RecyclerAdapter.Callback...= "ReportListActivity"; @BindView(R.id.tv_title_middle) TextView title; @BindView(R.id.title_left) ImageView.../** * 可拖拽列表的适配器, * 1.需要实现OnlineReportListCallback.ItemTouchMoveListener * 2.持有一个接口用于传递position */ public.../** * 用来完成RecyclerView长按拖拽的关键接口 * 1.getMovementFlags里面表示设置为上下拖动 * 2.onSelectedChanged里面表示拖动状态下改变背景色,
ListView实现局部刷新 我们都知道ListView通过adapter.notifyDataSetChanged()实现ListView的更新,这种更新方法的缺点是全局更新,即对每个Item View...如果要实现ListView的效果,只需要设置Adapter和Layout Manager,如下: ? ListView只提供了notifyDataSetChanged()更新整个视图,这是很不合理的。...其实万能适配器的概念在ListView就已经存在了,即base-adapter-helper。 这里我们只针对RecyclerView,聊聊万能适配器出现的原因。...Google在sample中给了一个参考的实现类:DividerItemDecoration,这里我们通过分析这个例子来看如何自定义Item Decoration。...实现中需要注意的点有: 我们为ToolBar的app:layout_collapseMode设置为pin,表示折叠之后固定在顶端,而为ImageView的app:layout_collapseMode设置为
ListView实现局部刷新 我们都知道ListView通过adapter.notifyDataSetChanged()实现ListView的更新,这种更新方法的缺点是全局更新,即对每个Item View...其实万能适配器的概念在ListView就已经存在了,即base-adapter-helper。 这里我们只针对RecyclerView,聊聊万能适配器出现的原因。...这里讲解下万能适配器的实现思路。...Google在sample中给了一个参考的实现类:DividerItemDecoration,这里我们通过分析这个例子来看如何自定义Item Decoration。...实现中需要注意的点有: 我们为ToolBar的app:layout_collapseMode设置为pin,表示折叠之后固定在顶端,而为ImageView的app:layout_collapseMode设置为
本文实例为大家分享了RecyclerView实现侧滑拖拽功能的具体代码,供大家参考,具体内容如下 准备 ItemDragListener package slideslipdrag; import android.support.v7...dimen/d12" android:layout_marginStart="@dimen/d12" android:background="@color/gray" / </LinearLayout 适配器...setSelectPosition(holder.getAdapterPosition()); mOnItemClickListener.onItemChoose(ground, true); } notifyDataSetChanged...ivBasicConfigChoose.setColorFilter(ContextCompat.getColor(context, R.color.blue), PorterDuff.Mode.SRC_IN); } } } 以上就是本文的全部内容...,希望对大家的学习有所帮助。
实现思路: 通过ItemTouchHelper来绑定RecyclerView的子控件触摸事件。 当滑动拖拽的时候,通知适配器来交换两个子控件的显示位置。...通过API文档的介绍,这个哥们儿是为RecyclerView工作的,他需要一个CallBack,可以回调RecyclerView的子控件滑动和拖拽事件,而且也可以通过这个CallBack重绘我们的子view...通过使用ItemTouchHelper,可以很轻松的就实现了RecyclerView触摸事件的回调。...我们所要做的就是在触摸事件之后,如何去改变去更新Adapter和改变我们的数据。...viewHolder, int direction) { } } Adapter类中处理数据 public class MyAdapter extends RecyclerView.Adapter
recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { //滑动事件 下面注释的代码...viewHolder.itemView.setBackgroundColor(0); ap.notifyDataSetChanged(); //完成拖动后刷新适配器,这样拖动后删除就不会错乱...recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { //滑动事件 下面注释的代码,...(0); ap.notifyDataSetChanged(); //完成拖动后刷新适配器,这样拖动后删除就不会错乱 } }); } Xml布局文件: <?...android:background="#fff" android:layout_margin="0.5dp" android:layout_height="match_parent" <ImageView
:27.1.1' 2.布局中添加RecyclerView <?...); 3.Adapter适配器设置 在使用的时候更新需要使用 Adapter适配器。...但是 RecyclerView使用的适配器并不是之前的 BaseAdapter了。...RecyclerView使用的适配器需要继承 RecyclerView.Adapter。...使用RecyclerView的优缺点 优点: 1、提供 ViewHolder模式,使得开发者真正操作的是 ViewHolder,而不是像 ListView中的 GridView,需要开发者自己 setTag
(getStrings())的方式得到一个stringAdapter ,再设置到RecyclerView中,最后设置布局管理器,这决定你的RecyclerView的内容是如何滚动的,默认是纵向的,也就是上下滑动...,对RecyclerView是否隐藏做判断,首先是修改图标,然后是修改RecyclerView是显示还是隐藏,也是比较简单的代码,但是有效,这里的点击事件处理在适配器中处理会更简单,所以就直接处理了。...,我增加了一个show变量,用来控制适配器Item的选中框是否显示,提供了show变量的get和set方法,在set方法中赋值之后调用notifyDataSetChanged()方法对适配器进行刷新,这个方法会触发...,设置状态为false,然后通过notifyDataSetChanged()方法刷新适配器所有数据,最后修改一下选中的数字和显示文字,这样就结束了,看看效果图如何。...需要移除列表数据,更新适配器,修改onSwiped()方法,代码如下: @Override public void onSwiped(@NonNull RecyclerView.ViewHolder
, int toPosition) 函数原型 : 该函数定义在 RecyclerView 的内部类 Adapter 中 ; public class RecyclerView extends ViewGroup..., 可以自己实现 ; 二、数据改变 ---- 批量修改数据 : 调用 RecyclerView.Adapter 的 void notifyDataSetChanged( ) 方法 , 通知数据发生了改变...和 结构性改变 ; ① item 元素改变 : 指的是单个的 item 的数据更新 , 但是位置没有改变 ; ② 结构性改变 : 指的是有新的数据被插入 , 删除 , 移动 , 位置发生了改变 ; 参数说明...(); RecyclerView.Adapter.notifyItemInserted(int position) 函数原型 : 该函数定义在 RecyclerView 的内部类 Adapter 中 ;...; * * 如果适配器调用了本方法 , 通知数据发生了改变 , RecyclerView 会尝试去 为适配器 同步可见的结构性改变事件 ;
#城市和天气信息显示模块 3、天气信息的显示 这里相对麻烦一点,因为天气信息的显示中我们做了比较多的功能 获取背景图片和图片的更新 这里我使用的是必应主页提供的背景图片作为天气信息显示的背景图片http...3、在布局文件中加入ViewPager控件,并在程序给控件设置步骤2中的适配器。 4、给控件添加监听器。...实现步骤: 1、准备数据源 2、根据数据源设置适配器 static class ViewHolder extends RecyclerView.ViewHolder { TextView hourlyTimeTV...items.remove(arg0); this.notifyDataSetChanged();//不要忘记更改适配器对象的数据源 }...items.remove(arg0); this.notifyDataSetChanged();//不要忘记更改适配器对象的数据源 } public
话说有图有真相,首先来对比一下局部刷新前后的效果: 优化之前的效果: ? 优化之后的效果: ? 可以看到,优化之后,列表中的这张大图不在有一闪一闪亮晶晶的效果了! 那么,这是如何做到的呢?...getView中(RecyclerView中是onBindViewHolder)加载图片的时候,设置一个tag,当发现这个imageView的tag和之前的tag一致时就不加载 二、带着思考,就去尝试吧...因为我们的这个列表项中的图片是(高=宽)的,因此,我才这么写,这样写也有一个好处,不用在onBindViewHolder中去动态的计算出高度,然后在已layoutParm的方式设置给imageView,...实际上,payload这个参数就是传的null,那也就是说如果传一个不为null的参数,就可以对列表项中的具体控件更新了?...然来,onBindViewHolder有这么一个重载方式,如是我也这么做了,在下面这个重载中,去更新我想更新的控件: ? 然后,更新的方式变成了这种: ? 是骡子是马,那就在遛一遛吧!
① 配置项目 在工程的build.gradle中,添加 maven { url "https://jitpack.io" } 如下图所示 ?...然后是在app下的build.gradle中添加依赖库 compileOptions {//指定使用的JDK1.8 sourceCompatibility = 1.8...:material:1.0.0' //RecyclerView最好的适配器,让你的适配器一目了然,告别代码冗余 implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper...然后改动colors.xml中系统默认的颜色 ? 然后是styles.xml文件 ? ② 布局和样式 图片资源 ? ? ? ? ? ?...mAdapter.notifyDataSetChanged(); } 然后在onCreate方法中调用 @Override protected void
,LayoutParams是布局参数,textview这个控件是在协调者布局中滑动的,所以,要获取该布局的参数,然后再设置行为。...适配器因为不是重点,这里就不多说了,大家知道这是一个传入list的RecyclerView适配器就行 public class MyAdapter extends RecyclerView.Adapter...通过id找到控件 然后赋值 然后添加适配器 然后添加行为 img = (ImageView) findViewById(R.id.id_img); final List...,其实呢,这就是更新一下适配就行了,这里我把更新后的数据改了,为了的就让大家可以看清刷新了, img.setOnClickListener(new View.OnClickListener() {...RecyclerView中 app:layout_behavior="@string/appbar_scrolling_view_behavior"方法是必须写的,因为coordinatorlayout
领取专属 10元无门槛券
手把手带您无忧上云