#include "../../lv_examples.h" #if LV_USE_LABEL && LV_USE_TEXTAREA && LV_FONT_SIMSUN_16_CJK && LV_USE_IME_PINYIN && LV_BUILD_EXAMPLES static void ta_event_cb(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * ta = lv_event_get_target(e); lv_obj_t * kb = lv_event_get_user_data(e); if(code == LV_EVENT_FOCUSED) { if(lv_indev_get_type(lv_indev_get_act()) != LV_INDEV_TYPE_KEYPAD) { lv_keyboard_set_textarea(kb, ta); lv_obj_clear_flag(kb, LV_OBJ_FLAG_HIDDEN); } } else if(code == LV_EVENT_READY || code == LV_EVENT_CANCEL) { lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_state(ta, LV_STATE_FOCUSED); lv_indev_reset(NULL, ta); /*To forget the last clicked object to make it focusable again*/ } } void lv_example_ime_pinyin_1(void) { lv_obj_t * pinyin_ime = lv_ime_pinyin_create(lv_scr_act()); lv_obj_set_style_text_font(pinyin_ime, &lv_font_simsun_16_cjk, 0); //lv_ime_pinyin_set_dict(pinyin_ime, your_dict); // Use a custom dictionary. If it is not set, the built-in thesaurus will be used. lv_obj_t * kb = lv_keyboard_create(lv_scr_act()); lv_ime_pinyin_set_keyboard(pinyin_ime, kb); /* ta1 */ lv_obj_t * ta1 = lv_textarea_create(lv_scr_act()); lv_obj_set_style_text_font(ta1, &lv_font_simsun_16_cjk, 0); lv_obj_align(ta1, LV_ALIGN_TOP_LEFT, 10, 10); lv_keyboard_set_textarea(kb, ta1); lv_obj_add_event_cb(ta1, ta_event_cb, LV_EVENT_ALL, kb); /* ta2 */ lv_obj_t * ta2 = lv_textarea_create(lv_scr_act()); lv_obj_set_style_text_font(ta2, &lv_font_simsun_16_cjk, 0); lv_obj_align_to(ta2, ta1, LV_ALIGN_OUT_RIGHT_MID, 10, 0); lv_obj_add_event_cb(ta2, ta_event_cb, LV_EVENT_ALL, kb); lv_obj_t * cz_label = lv_label_create(lv_scr_act()); lv_label_set_text(cz_label, "嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。"); lv_obj_set_style_text_font(cz_label, &lv_font_simsun_16_cjk, 0); lv_obj_set_width(cz_label, 310); lv_obj_align_to(cz_label, ta1, LV_ALIGN_OUT_BOTTOM_LEFT, 5, 5); } #endif