recyclerview

【Kotlin】FarawayPlayer

主宰稳场 提交于 2020-02-09 03:31:25
ps:一个提醒机制 抛出异常: kotlin.NotImplementedError: An operation is not implemented: not implemented 在实现接口的时候IDE会自动为我们添加上: TODO("not implemented") //To change body of created functions use File | Settings | File Templates. “ TODO("not implemented") ”这句代码,这句代码在运行的时候会抛出以上异常,这样做的好处是促使我们去实现接口方法或者手动删掉这句代码。 【 https://www.cnblogs.com/claruarius/p/GenyMotion_intelliJ_config.html 】使用Genymotion 1.在app.buildgradle中的依赖添加anko库 //app目录添加anko库 dependencies { implementation "org.jetbrains.anko:anko:$anko_version" } implementation "org.jetbrains.anko:anko:0.10.8" https://github.com/Kotlin/anko 2.anko库由gradle

RecyclerView拖拽的实现及一些特殊需求

て烟熏妆下的殇ゞ 提交于 2020-02-07 11:03:24
1.创建ItemTouchHelper对象并绑定 首先说一下关键点,在RecyclerView中实现拖拽排序时非常简单地,只需要个给RecyclerView添加一个ItemTouchHelper就可以实现,具体实现如下: ItemTouchHelper itemTouchHelp = new ItemTouchHelper(new CityRecycleCallBack(adapter)); itemTouchHelp.attachToRecyclerView(recyclerView); 2. ItemTouchHelper.Callback回调实现 这个回调中有许多方法,通多对方法的实现就能最终实现拖拽效果 2.1 getMovementFlags 在这里主要设置拖拽的方向即是否可拖拽,根据布局的不同有不同的方法,如列表只有上下拖拽,网格只有上下左右。具体实现如下: public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { final int dragFlags = ItemTouchHelper.UP |

在Recyclerview末尾添加一个item

不羁岁月 提交于 2020-02-06 10:46:51
在Recyclerview末尾添加一个item 在网上找了半天没有找到想要的效果,所以自己想了一个比较简单的方法。先上效果图(请忽略那丑丑的界面) 这个是在书架有书的情况下即list.size()>0 这个是list.size()=0时显示的,将原本为“gone”的LinearLayout改成可见的。 BookAdapter中的onBindViewHolder代码 @Override public void onBindViewHolder(ViewHolder holder, int position){ if(position>mbooklist.size()){ holder.bImage.setImageResource(R.drawable.back); holder.bname.setText(""); holder.bRead.setText(""); holder.bState.setText(""); }else{ book book = mbooklist.get(position); holder.bImage.setImageResource(R.drawable.book1); holder.bState.setText(book.getState()); holder.bRead.setText(book.getRead()); holder.bname

RecyclerView使用解析

泄露秘密 提交于 2020-02-04 22:18:48
0.RecyclerView的特性 1.LayoutManager类 2.Adapter类 3.ViewHolder类 4.配置不同的LayoutManager 5.为item配置点击事件 6.RecyclerView中插入和删除数据 . . . 0.RecyclerView的特性: 灵活可以配置 可以自定义并且可以重复使用的Item 高度解耦 . . 1.LayoutManager类: LayoutManager类是一个抽象类,安卓给我们提供了三个它的实现类供我们使用: 1.1LinearLayoutManager: 线性布局管理器。 LinearLayoutManager给我们提供了一些API让我们可以对展示效果进行更丰富的操作。 1.2GridLayoutManager: 网格布局管理器 我们可以在它的构造方法中传入它的列数。 1.3StaggeredGridLayoutManager: 瀑布流布局管理器 宽度相同高度不同的ItemView。 确定RecyclerView的样式,是线性的,网格的还是瀑布流的。 2.Adapter类 用来处理视图和数据之间的关系,一般情况下和 ViewHolder 搭配使用。 每个Adapter都必须继承自RecyclerView.Adapter.并实现三个方法: **onCreateViewHolder:**创建ViewHolder并返回 /

room+livedata+ViewModel+RecyclerView

孤街浪徒 提交于 2020-02-04 15:33:58
1 简介 1.1 room android 官方推荐的数据库框架,room主要包含三个组件:roomDatabase,entity,Dao. 使用 Room 数据库来获取与该数据库关联的数据访问对象 (DAO)。然后,应用使用每个 DAO 从数据库中获取实体, 然后再将对这些实体的所有更改保存回数据库中。最后,应用使用实体来获取和设置与数据库中的表列相对应的值。 1.2 liveData LiveData是可以在给定生命周期内观察到的数据持有者类。 这意味着可以将Observer与LifecycleOwner成对添加,并且只有在配对的LifecycleOwner处于活动状态时,才会向该观察者通知有关包装数据的修改。 如果LifecycleOwner的状态为STARTED或RESUMED,则将其视为活动状态。 通过observeForever添加的观察者被视为始终处于活动状态,因此将始终收到有关修改的通知。 对于这些观察者,您应该手动调用removeObserver。 liveData可以订阅数据库的变化,在子线程中查询数据,并且在主线程中更新UI。 1.3 ViewModel ViewModel是一个类,负责为Activity或Fragment准备和管理数据。它还处理活动/片段与应用程序其余部分的通信(例如,调用业务逻辑类)。 始终与范围(片段或活动)相关联地创建ViewModel

[android]com.android.support:appcompat-v7:XXX 包导入无法Build

房东的猫 提交于 2020-02-04 15:14:28
在学习《Android编程权威指南》时,按书中要求添加com.android.support:appcompat的依赖,然后编译不通过,提示如下问题: 大概意思是,Android Pie之前支持这个库,我们建议迁移到AndroidX libraries…… 然后搜索了一下,原来2018年google开发者大会以后,相关库已经整合到AndroidX库中,这里放一个链接:(别人的说明) 1. AndroidX变化 1)常用依赖库对比: Old build artifact AndroidX build artifact com.android.support:appcompat-v7:28.0.2 androidx.appcompat:appcompat:1.0.0 com.android.support:design:28.0.2 com.google.android.material:material:1.0.0 com.android.support:support-v4:28.0.2 androidx.legacy:legacy-support-v4:1.0.0 com.android.support:recyclerview-v7:28.0.2 androidx.recyclerview:recyclerview:1.0.0 com.android.support

(01)recyclerview的基本使用

点点圈 提交于 2020-01-29 01:44:25
1.几个重要的类 1.1 简述:首先说明他的几个重要的类 1.1.2 RecyclerView.Adapter 抽象类,为RecyclerView提供数据,一般根据不同的业务需求来编写具体的实现类。 1.1.3 RecyclerView.LayoutManager :抽象类,主要用于测量RecyclerView的子Item,以及根据不同的布局方式来实现Item的布局效果,v 7包自带的实现类有:LinearLayoutManager、StaggeredGridLayoutManager、GridLayoutManager。 1.1.4 RecyclerView.ItemDecoration 抽象类,这个主要用于不同的Item之间添加分割线(可选)。官方没有实现类,所以如果要添加分割线,我们需要手动实现这个抽象类 .1.1.5 RecyclerView.ItemAnimator 抽象类,这个主要用于当一个item添加或者删除的时候出现的动画效果,官方提供一个默认的实现类。如果想要使我们的RecyclerView在添加、删除数据的时候有炫酷的动画,可以实现这个抽象类。 2.创建Adapter适配器 继承该类的时候,必须重写这三个方法,我们分别解释一下这三个方法是什么作用: onCreateViewHolder:创建ViewHolder

王学岗高级UI(16)——————手写支持上亿级数据不卡顿的RecyclerView回收池

試著忘記壹切 提交于 2020-01-26 17:34:10
RecyclerView只是一个控件,数据的存储和它没有任何关系。RecyclerView只是负责显示数据 本篇文章主要包括以下内容, 1,Recycler View的原理解析 2,自定义Adapter接口 3,view回收池 4,自定义实现RecyclerView (1)触摸事件的处理 RecyclerView是一个具备滑动功能的控件,所以要对他滑动事件进行监听 (2)适配器与UI的交互 通过适配器要将UI与数据交互 (3)回收池与适配器的交互 RecyclerView要协调回收池中的View对象与适配器对象之间的工作。 回收池本身是一个集合,它本身要做的事情有两件——存储和读取 来源: CSDN 作者: qczg_wxg 链接: https://blog.csdn.net/qczg_wxg/article/details/104086215

Android控件学习(十)——RecyclerView

别来无恙 提交于 2020-01-24 22:14:56
ListView 的进阶版,可以实现横向滚动 这次也新建一个项目: day05_RecyclerView 一、基本用法 1、导入依赖库 参考资料:Android布局学习(四)——百分比布局Percent?Layout 新增控件需要引入依赖库,在 app/build.gradle 中添加如下内容: implementation 'androidx.recyclerview:recyclerview:1.0.0' 2、主布局添加控件 <?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 = " match_parent " > < androidx.recyclerview.widget.RecyclerView android: id = " @+id/recycler_view " android: layout_width = " match_parent " android: layout_height

安卓开发笔记——打造属于自己的博客园APP(四)

北城以北 提交于 2020-01-24 21:23:40
  在上一篇文章《 安卓开发笔记——打造属于自己的博客园APP(二) 》中,我们基本上实现了主界面的搭建,网络框架的搭建,各博客列表页面的展示包括更新效果,对图片做了三级缓存处理(后面会把文章,新闻做成离线闪存,实现无网络也能照常浏览)。   今天来讲讲博客详情页和评论页面的实现,国际惯例,先上效果图:(动态图片比较大,加载需要点时间)     这里说下,关于上篇文章XML的解析,我后来查了下确实有一些方便解析的工具,例如:FastXML,Xstram等且效率更高,这里是在它的官方找到的一张数据图: 文章里我就还是先采用原生的pull解析了,等重构代码时候再换上工具类吧,先把项目做完。    好了,废话不多说了,直接进入主题: 1、关于RecyclerView的点击事件   首先先来说下关于RecyclerView的点击监听事件,在上篇文章提到,RecyclerView是ListView升级版,顾名思义它是为效率而生的,它不关心多余的任何事情,比如Item项的动作监听,Item项的分割线,Item项的添加动画效果,只专注于数据的展示实现,相比ListView它更符合软件设计原则,更加解耦。   上面提到它不关心Item项的动作监听,很自然,它没有和ListView控件一样提供类似setOnItemClickListener这种监听方法,需要我们自己来实现,那么很自然的