Inspiré de XhsEmoticonsKeyboard, le framework a été repensé et la fonction de mise à jour dynamique des émoticônes a été ajoutée. En utilisant EmoticonPacksAdapter, vous pouvez facilement ajouter ou supprimer des émoticônes.
Le nouveau code est développé en utilisant Kotlin.
allprojects {
repositories {
jcenter()
}
}
et:
dependencies {
compile 'im.ll:emoticonsboard:1.0.0'
}
EmoticonsBoard affiche les émoticônes en définissant EmoticonPacksAdapter. EmoticonPacksAdapter contient une liste d'EmoticonPacks utilisés pour transporter des données d'émoticônes. Chaque EmoticonPack représente une collection d'émoticônes. PageFactory est utilisé pour créer des vues qui affichent des expressions, et les expressions sont affichées sous forme de pages. En personnalisant différentes PageFactory, vous pouvez afficher les émoticônes de différentes manières.
< github .ll.emotionboard.EmoticonsBoard xmlns : android = " http://schemas.android.com/apk/res/android "
xmlns : app = " http://schemas.android.com/apk/res-auto "
android : layout_width = " match_parent "
android : layout_height = " match_parent "
android : orientation = " vertical " >
< LinearLayout
android : layout_width = " match_parent "
android : layout_height = " match_parent "
android : orientation = " vertical " >
< ListView
android : layout_width = " match_parent "
android : layout_height = " match_parent " />
</ LinearLayout >
</ github .ll.emotionboard.EmoticonsBoard>
EmoticonsBoard ne peut avoir qu'une seule vue enfant
Code Java :
EmoticonsBoard ekBar;
List<EmoticonPack> packs = new ArrayList<EmoticonPack>;
init packs...
EmoticonPacksAdapter adapter = new EmoticonPacksAdapter(packs);
ekBar.setAdapter(adapter);
Pour plus de détails, reportez-vous à la source de démonstration
Code Kotlin :
private var adapter: EmoticonPacksAdapter? = null
private lateinit var mEmojiPack: EmoticonPack<Emoticon>
...
val emoticon = Emoticon()
emoticon.code = "new emoji"
emoticon.uri = "xxx"
mEmojiPack.emoticons.add(emoticon)
mEmojiPack.emoticons.add(emoticon)
mEmojiPack.isDataChanged = true
adapter?.notifyDataSetChanged()
Rendre isDataChanged d'emoticonPack modifié sur true est très important