• Stars
    star
    128
  • Rank 281,044 (Top 6 %)
  • Language
    Java
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

对RecyclerView的封装,让其使用更加简单,得心应手

LQRRecyclerViewLibrary

对RecyclerView的封装,让其使用更加简单,得心应手

LQRRecyclerView

该控件是对RecyclerView的封装,众所周知,RecyclerView功能十分强大,一个控件只需要给它设置不同的LayoutManager就可以实现ListView、GridView和瀑布流,实际项目开发每次使用都要创建并设置LayoutManager,略显“麻烦”;除此之外,最让人无语的就是分割线的绘制,相信不少人会为其头痛吧。故本控件针对上述两个问题对RecyclerView进行了优化,每个的设置只需要一句代码搞定。 如:

<com.lqr.recyclerview.LQRRecyclerView
    android:id="@+id/rv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:rv_divider_color="#f00"				//设置纯色分割线颜色(还可以设置图片分割线)
    app:rv_divider_size="10dp"				//设置分割线大小
    app:rv_orientation="vertical"			//设置列表控件的方向
    app:rv_default_animator_open="true"		//设置是否开启局部刷新动画(不设置默认关闭)
    app:rv_type="grid"/>					//设置列表类型(列表/网格、瀑布流)

1、导入

compile 'com.lqr.recyclerview:library:1.0.2'

2、设置LQRRecyclerView的控件类型

*LinearLayoutManager能做到的,GridLayoutManager也能做到,所以本工程去掉了"list"这一项

①xml方式(有三种选择:grid、stagger)
app:rv_type="" 

②代码方式(有三种选择:TYPE_GRID、TYPE_STAGGER)
mRv.setType(LQRRecyclerView.TYPE_XX);

3、设置LQRRecyclerView的控件方向

①xml方式(有两种选择:vertical、horizontal)
app:rv_orientation="" 

②代码方式(有两种选择:ORIENTATION_VERTICAL、ORIENTATION_HORIZONTAL)
mRv.setOrientation(LQRRecyclerView.XX);

4、设置LQRRecyclerView的列数

①xml方式
app:rv_column="2"

②代码方式
mRv.setColumn(2);

5、设置LQRRecyclerView的分割线样式

1)设置纯色分割线

①xml方式
app:rv_divider_color="#f00"
app:rv_divider_size="10dp" 

②代码方式
mRv.setDividerColor();
mRv.setDividerSize();

2)设置图片分割线

①xml方式
app:rv_divider_drawable="@mipmap/ic_launcher"
app:rv_divider_size="10dp" 

②代码方式
mRv.setDividerDrawable();
mRv.setDividerSize();

6、设置默认局部刷新动画的开启和关闭

*因为开发时很多时候是不需要默认的条目动画的,所以默认设置为不要动画(即为false),注意,如果你的项目中用到了自定义条目动画,那么要将该属性打开!!!

①xml方式
app:rv_default_animator_open="true"

②代码方式
//打开默认局部刷新动画
mRv.openDefaultAnimator();
//关闭默认局部刷新动画
mRv.loseDefaultAnimator();

下面分别是app:rv_default_animator_open="true"和"false"的效果演示

image image

7、滑动指定位置

*使用RecyclerView自带的smoothScrollToPosition方法和scrollToPosition方法实现滑动到指定位置时,不会将对应的条目置顶,使用以下方法可解决上述问题。

滚动:

mRv.moveToPosition(position);

平滑滚动:

mRv.smoothMoveToPosition(position);

8、监听LQRRecyclerView的滚动

因为该控件已经对RecyclerView进行过监听,用于实现平滑滚动条目置顶,故要监听其滚动事件,需要使用以下接口:OnScrollListenerExtension

mRv.setOnScrollListenerExtension(new OnScrollListenerExtension...);

上述功能可参考项目LqrRecyclerViewDemo

效果如下:

image image

More Repositories

1

LQRWeChat

本项目仿最新版微信6.5.7(除图片选择器外),基于融云SDK,使用目前较火的 Rxjava+Retrofit+MVP+Glide 技术开发。相比上个版本,加入发送位置消息,红包消息等功能。
Java
3,370
star
2

LQREmojiLibrary

一个超级牛逼的表情库,可使用表情及贴图功能,方便好用,抽离图片加载接口,图片加载工具可让开发者自己选择。
Java
484
star
3

LQRAudioRecord

集成录音与播音功能,使用简单方便
Java
382
star
4

MaterialDesignDemo

Material Design 兼容性控件学习
Java
226
star
5

HotFixDemo

热修复Demo(附文章讲解)
Java
162
star
6

TopsalesSellControlTableDemo

仿房产销冠APP的销控表界面
Java
147
star
7

LQRImagePicker

完全仿微信的图片选择,并且提供了多种图片加载接口,选择图片后可以旋转,可以裁剪成矩形或圆形,可以配置各种其他的参数
Java
139
star
8

LQRNineGridImageView

仿微信群头像九宫格控件
Java
132
star
9

LQRBiliBlili

高仿bilibili安卓客户端
Java
116
star
10

LQRLibyuv

基于 libyuv 封装各种图像格式转换,用于处理摄像头yuv图像数据
C++
113
star
11

LQRDropdownLayoutLibrary

下拉导航菜单,使用非常简单
Java
71
star
12

LQRAdapterLibrary

万能适配器(RecyclerView、ListView、GridView)
Java
57
star
13

LQRViedoRecordView

安卓视频录制控件,可以用来仿微信小视频
Java
57
star
14

LQRNativePicSelect

为使用系统原生选择图片需求做了一个工具类封装,并适配了Android 7.0
Java
44
star
15

RePluginX

🔥 Supports AndroidX and Android-Support
Java
43
star
16

LQROptionItemView

项目中常用选项条目布局控件
Java
21
star
17

AndroidAopDemo

Android面向切面编程Demo(AOP)
Java
20
star
18

AspectLogDemo

Spring Boot使用自定义注解+AOP处理日志
Java
16
star
19

LQRArticlePatch

解析下载今日头条视频及图片
Java
14
star
20

SimpleDbFrame

手撸一个简单的面向对象数据框架(工厂模式+泛型+注解+反射)
Java
13
star
21

LQRRecordProgress

仿微信小视频进度条
Java
8
star
22

DropdownLayoutDemo

下拉导航菜单,使用非常简单
Java
6
star
23

LiteARouter

精简版ARouter,与 RePluginX 更配哦~
Java
5
star
24

OpenGLDemo

Android中OpenGL编程Demo
Java
3
star
25

meiduo_project

django美多商城
HTML
3
star
26

UniappIseXfyun

Uniapp小程序版 科大讯飞语音评测Demo
TypeScript
3
star
27

LQROpenCV

基于OpenCV3.4.1,实现人脸识别,手部识别。
C++
3
star
28

IocDemo

使用注解打造自己的IOC框架
Java
2
star
29

vue-legacy-project

兼容低版本浏览器的vue工程示例
Vue
2
star
30

LQRCustomerView

自定义View练习
Java
2
star
31

OpenGLStudy

study opengl and camera
Java
1
star
32

pagehelper

Mybatis逆向工程分页助手fix
Java
1
star
33

www---api-6-17-

Python
1
star
34

LQRCameraDemo

Android相机使用Demo
Java
1
star
35

WeiXinEmotion

模仿微信表情
Java
1
star
36

game-tank

Kotlin坦克大战
Kotlin
1
star
37

LQRLibrtmp

基于librtmp搭建的RTMP推流器
C
1
star
38

uniapp-tensorflowjs-mp

uniapp 集成 tensorflowjs(微信小程序)
SCSS
1
star
39

vite-plugin-variant

vite-plugin-variant is a vite plugin for managing multi-channel differentiated source code
TypeScript
1
star