مستوحى من XhsEmoticonsKeyboard، تم إعادة تصميم إطار العمل وإضافة وظيفة تحديث الرموز ديناميكيًا. باستخدام EmoticonPacksAdapter، يمكنك بسهولة إضافة أو إزالة الرموز.
تم تطوير الكود الجديد باستخدام Kotlin.
allprojects {
repositories {
jcenter()
}
}
و:
dependencies {
compile 'im.ll:emoticonsboard:1.0.0'
}
يعرض EmoticonsBoard الرموز عن طريق إعداد EmoticonPacksAdapter. يحتوي EmoticonPacksAdapter على قائمة بحزم EmoticonPacks المستخدمة لنقل بيانات الرموز التعبيرية. تمثل كل حزمة EmoticonPack مجموعة من الرموز التعبيرية. يتم استخدام PageFactory لإنشاء طرق العرض التي تعرض التعبيرات، ويتم عرض التعبيرات في شكل صفحات. من خلال تخصيص PageFactory مختلف، يمكنك عرض الرموز بطرق مختلفة.
< 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 على عرض فرعي واحد فقط
كود جافا:
EmoticonsBoard ekBar;
List<EmoticonPack> packs = new ArrayList<EmoticonPack>;
init packs...
EmoticonPacksAdapter adapter = new EmoticonPacksAdapter(packs);
ekBar.setAdapter(adapter);
للحصول على تفاصيل الرجوع إلى المصدر التجريبي
كود كوتلن:
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()
يعد تحويل isDataChanged الخاص بـ emoticonPack إلى صحيح أمرًا مهمًا للغاية