Inspirándose en XhsEmoticonsKeyboard, se rediseñó el marco y se agregó la función de actualizar dinámicamente emoticones. Con EmoticonPacksAdapter, puede agregar o eliminar emoticonos fácilmente.
El nuevo código se desarrolla utilizando Kotlin.
allprojects {
repositories {
jcenter()
}
}
y:
dependencies {
compile 'im.ll:emoticonsboard:1.0.0'
}
EmoticonsBoard muestra emoticones configurando EmoticonPacksAdapter. EmoticonPacksAdapter contiene una lista de EmoticonPacks utilizados para transportar datos de emoticonos. Cada EmoticonPack representa una colección de emoticonos. PageFactory se utiliza para crear vistas que muestran expresiones, y las expresiones se muestran en forma de páginas. Al personalizar diferentes PageFactory, puede mostrar emoticones de diferentes maneras.
< 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 solo puede tener una vista infantil
código Java:
EmoticonsBoard ekBar;
List<EmoticonPack> packs = new ArrayList<EmoticonPack>;
init packs...
EmoticonPacksAdapter adapter = new EmoticonPacksAdapter(packs);
ekBar.setAdapter(adapter);
Para obtener más información, consulte la fuente de demostración.
Código 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()
Hacer que el isDataChanged del emoticonPack modificado sea verdadero es muy importante