• Stars
    star
    286
  • Rank 144,690 (Top 3 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated almost 2 years ago

Reviews

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

Repository Details

Enhance RecyclerView and Adapter and ViewHolder. Make them much more powerful and easier to use.

Flap(灵动)

Build Status AndroidX RecyclerView API license Author PRs welcome


Flap 是一个基于 RecyclerView 的页面组件化解决方案,提供更好的开发体验和更强大的功能,让你更关注业务,帮你提高开发效率。

在语雀写了体验更好的文档,可以前往语雀查看。

Flap 使用示例:

基本使用步骤:

  1. 定义一个模型,对应一个组件;
  2. 创建一个 layout ,用于组件渲染;
  3. 创建一个 delegate,并注册到 FlapAdapter;

1)定义一个模型类, SimpleTextModel :

data class SimpleTextModel(val content: String)

2)创建一个 layout :

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#0ff0ff"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tv_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:minHeight="50dp"
        android:paddingLeft="16dp"
        android:text="content"
        android:textColor="@android:color/white"
        android:textSize="16sp" />

</FrameLayout>

3)创建一个 delegate,并注册到 FlapAdapter:
按需重写 onBind 方法:

val simpleTextDelegate = adapterDelegate<SimpleTextModel>(R.layout.flap_item_simple_text) {
    onBind { model ->
        bindTextView(R.id.tv_content) {
            text = model.content
        }
    }
}

使用 FlapAdapter 注册并设置 data:

recyclerView.addItemDecoration(LinearSpaceItemDecoration(requireActivity().toPixel(6)))

//创建你的 FlapAdapter
var adapter: FlapAdapter = FlapAdapter()

//注册 AdapterDelegate
adapter.registerAdapterDelegate(simpleTextDelegate)

val dataList = ArrayList<Any>()
dataList.add(SimpleTextModel("Android"))
dataList.add(SimpleTextModel("Java"))
dataList.add(SimpleTextModel("Kotlin"))

//设置你的 data
adapter.setDataAndNotify(dataList);

recyclerView.adapter = adapter

这样就完全 OK 啦! 咱们跑起来看看:

进阶使用

更多功能查看这个文档

贡献

  • 发现 Flap 有 Bug?提 issue 告诉我!
  • 发现 Flap 超好用?star 一波,安利给所有的小伙伴!
  • 发现有需要的功能 Flap 不具有? 提 issue 告诉我!
  • 任何意见和建议都可以提喔~

贡献者列表

感谢以下人员对 Flap 提供的帮助:

Stargazers over time

Stargazers over time

License

Apache 2.0

More Repositories

1

Android-Resources

优秀的Android资源收集与整理
379
star
2

PracticeDemo

@DEPRECATED 个人练习项目,记录成长之路
Java
328
star
3

PeriscopeLayout

A layout with animation like Periscope's
Java
272
star
4

Pandora

潘多拉的魔盒了解一下。
Java
252
star
5

AndFixDemo

a demo for AndFix (AndroidStudio)
Java
205
star
6

FullStackNotes

我想做个全栈,这是我成长之路的笔记。——2019.05.22
Java
103
star
7

ReadingNotes

记录一些书籍的比较,阅读心得,在加上自己的看法
91
star
8

OnePiece

OnePiece Of Android
Kotlin
59
star
9

Alibaba-Nei-Tui-Guide

🔥🔥《阿里巴巴内推指南》🔥🔥
58
star
10

Android-Skill-Map

Android 技能谱
29
star
11

CrashCatcher

捕获crash,存入本地文件~
Java
17
star
12

StudyNotes

Merged to OnePiece https://github.com/AlanCheen/OnePiece
17
star
13

TalkAboutApk

Java
11
star
14

Awesome-Flutter

迁移至https://github.com/HeadFirstAndroid/HeadFirstAndroidIndex
11
star
15

Climb

练习之作
Java
8
star
16

LearnDataBinding

Java
7
star
17

Android-API-Guide-zh-cn

Android-API 官方翻译 搬运整理版
6
star
18

DesignPattern

关于设计模式的学习/写作的练习代码
Java
6
star
19

OkHttpDownLoadDemo

带进度的okhttp下载文件demo
Java
6
star
20

AndroidDebugHelper

Kotlin
4
star
21

HeadFirstAndroidIndex

索引
Kotlin
4
star
22

DexposedDemo

利用Dexposed 修改 IMEI
Java
4
star
23

Stair

Java
3
star
24

HeadFirstWeb

学一下前端。
HTML
3
star
25

MasteringAndroid

尝试下 Android 新技术
Kotlin
3
star
26

MacTools

mac apps
2
star
27

posts

hexo blog backup
2
star
28

FaceDetection

a demo of face detection
Java
2
star
29

Awesome-PageTransformer

PageTransformers for ViewPager
Java
2
star
30

Utils

已废弃,更新请看:https://github.com/AlanCheen/Pandora
Java
2
star
31

HelloWeex

Java
1
star
32

as-setting-backup

AndroidStudio 配置备份
1
star
33

alancheen.github.io

my blog
HTML
1
star
34

UnderstandingAndroid

在实践中理解 Android
Java
1
star
35

OhMyEnglish

Improve your English
1
star
36

helloweb

HTML
1
star