Inspiriert durch XhsEmoticonsKeyboard wurde das Framework neu gestaltet und die Funktion zur dynamischen Aktualisierung von Emoticons hinzugefügt. Mit EmoticonPacksAdapter können Sie ganz einfach Emoticons hinzufügen oder entfernen.
Der neue Code wird mit Kotlin entwickelt.
allprojects {
repositories {
jcenter()
}
}
Und:
dependencies {
compile 'im.ll:emoticonsboard:1.0.0'
}
EmoticonsBoard zeigt Emoticons an, indem EmoticonPacksAdapter festgelegt wird. EmoticonPacksAdapter enthält eine Liste von EmoticonPacks, die zum Übertragen von Emoticon-Daten verwendet werden. Jedes EmoticonPack stellt eine Emoticon-Sammlung dar. PageFactory wird verwendet, um Ansichten zu erstellen, die Ausdrücke anzeigen, und Ausdrücke werden in Form von Seiten angezeigt. Durch Anpassen verschiedener PageFactory können Sie Emoticons auf unterschiedliche Weise anzeigen.
< 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 kann nur eine untergeordnete Ansicht haben
Java-Code:
EmoticonsBoard ekBar;
List<EmoticonPack> packs = new ArrayList<EmoticonPack>;
init packs...
EmoticonPacksAdapter adapter = new EmoticonPacksAdapter(packs);
ekBar.setAdapter(adapter);
Einzelheiten finden Sie in der Demoquelle
Kotlin-Code:
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()
Es ist sehr wichtig, den geänderten isDataChanged von emoticonPack auf true zu setzen