Inspirado no XhsEmoticonsKeyboard, o framework foi redesenhado e foi adicionada a função de atualização dinâmica de emoticons. Usando EmoticonPacksAdapter, você pode adicionar ou remover emoticons facilmente.
O novo código é desenvolvido usando Kotlin.
allprojects {
repositories {
jcenter()
}
}
e:
dependencies {
compile 'im.ll:emoticonsboard:1.0.0'
}
EmoticonsBoard exibe emoticons configurando EmoticonPacksAdapter. EmoticonPacksAdapter contém uma lista de EmoticonPacks usados para transportar dados de emoticons. Cada EmoticonPack representa uma coleção de emoticons. PageFactory é usado para criar visualizações que exibem expressões, e as expressões são exibidas na forma de páginas. Ao personalizar diferentes PageFactory, você pode exibir emoticons de diferentes maneiras.
< 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 só pode ter uma visualização filha
Código Java:
EmoticonsBoard ekBar;
List<EmoticonPack> packs = new ArrayList<EmoticonPack>;
init packs...
EmoticonPacksAdapter adapter = new EmoticonPacksAdapter(packs);
ekBar.setAdapter(adapter);
Para obter detalhes, consulte a fonte de demonstração
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()
Tornar isDataChanged do emoticonPack modificado para true é muito importante