# EmoticonsBoard
**Repository Path**: liuqiusong/EmoticonsBoard
## Basic Information
- **Project Name**: EmoticonsBoard
- **Description**: Function keyboard and emotions. Android表情键盘,可动态更新表情。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-10-28
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# EmoticonsBoard
受XhsEmoticonsKeyboard的启发,重新设计了框架,添加了动态更新表情包的功能。使用EmoticonPacksAdapter,可以轻松的增减表情。
新增代码使用Kotlin开发。

# Gradle Dependency
```xml
allprojects {
repositories {
jcenter()
}
}
```
and:
```xml
dependencies {
compile 'im.ll:emoticonsboard:1.0.0'
}
```
# Struct
EmoticonsBoard通过设置EmoticonPacksAdapter来展示表情。EmoticonPacksAdapter包含了一个EmoticonPack的列表,用来承载表情数据。每个EmoticonPack代表了一个表情集合。PageFactory用来创建展示表情的View,表情是以Page的形式展示的。
通过自定义不同的PageFactory就可以以不同方式展示表情。
# Samples Usage
## XML
```xml
```
EmoticonsBoard can only has one child view
## Set Adapter
Java code:
```
EmoticonsBoard ekBar;
List packs = new ArrayList;
init packs...
EmoticonPacksAdapter adapter = new EmoticonPacksAdapter(packs);
ekBar.setAdapter(adapter);
```
For details refer to the demo source
## Update data

Kotlin code:
```
private var adapter: EmoticonPacksAdapter? = null
private lateinit var mEmojiPack: EmoticonPack
...
val emoticon = Emoticon()
emoticon.code = "new emoji"
emoticon.uri = "xxx"
mEmojiPack.emoticons.add(emoticon)
mEmojiPack.emoticons.add(emoticon)
mEmojiPack.isDataChanged = true
adapter?.notifyDataSetChanged()
```
Make modified emoticonPack's isDataChanged to true is very important