staticvoidevent_cb(lv_event_t* e){
lv_obj_t* obj =lv_event_get_target(e);//获取事件产生的对象
uint32_t id =lv_btnmatrix_get_selected_btn(obj);//获取事件对象对应的ID
bool prev = id ==0? true : false;//是否为第0个ID
bool next = id ==6? true : false;//是否为第6个IDif(prev || next){/*Find the checked button*/
uint32_t i;for(i =1; i <7; i++){//查找已级选中的IDif(lv_btnmatrix_has_btn_ctrl(obj, i, LV_BTNMATRIX_CTRL_CHECKED))break;}if(prev && i >1) i--;//向前移动elseif(next && i <5) i++;//向后移动lv_btnmatrix_set_btn_ctrl(obj, i, LV_BTNMATRIX_CTRL_CHECKED);//设置移动后的ID对应的按键为选中状态}}
创建按键组及注册事件
/**
* Make a button group (pagination)
*/staticvoidlv_example_btnmatrix_3(void){static lv_style_t style_bg;//背景stylelv_style_init(&style_bg);lv_style_set_pad_all(&style_bg,0);//pad all为0lv_style_set_pad_gap(&style_bg,0);//间隙为0lv_style_set_clip_corner(&style_bg, true);//裁剪拐角lv_style_set_radius(&style_bg, LV_RADIUS_CIRCLE);//圆角lv_style_set_border_width(&style_bg,0);//外框为0static lv_style_t style_btn;lv_style_init(&style_btn);lv_style_set_radius(&style_btn,0);//按键无拐角lv_style_set_border_width(&style_btn,1);//外框为1lv_style_set_border_opa(&style_btn, LV_OPA_50);//透明度50%lv_style_set_border_color(&style_btn,lv_palette_main(LV_PALETTE_GREY));//外框颜色灰色lv_style_set_border_side(&style_btn, LV_BORDER_SIDE_INTERNAL);//设置边框面为LV_BORDER_SIDE_INTERNALlv_style_set_radius(&style_btn,0);//无倒角staticconstchar* map[]={ LV_SYMBOL_LEFT,"1","2","3","4","5", LV_SYMBOL_RIGHT,""};//按键map
lv_obj_t* btnm =lv_btnmatrix_create(lv_scr_act());//创建matrix按键对象lv_btnmatrix_set_map(btnm, map);//设置按键maplv_obj_add_style(btnm,&style_bg,0);//设置stylelv_obj_add_style(btnm,&style_btn, LV_PART_ITEMS);//设置按键子项的stylelv_obj_add_event_cb(btnm, event_cb, LV_EVENT_VALUE_CHANGED,NULL);//注册事件为值改变事件lv_obj_set_size(btnm,225,35);//设置matrix大小/*Allow selecting on one number at time*/lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_CHECKABLE);//设置matrix可点击lv_btnmatrix_clear_btn_ctrl(btnm,0, LV_BTNMATRIX_CTRL_CHECKABLE);//清除第1个键可选择特性lv_btnmatrix_clear_btn_ctrl(btnm,6, LV_BTNMATRIX_CTRL_CHECKABLE);//清除第7个键可选择特性lv_btnmatrix_set_one_checked(btnm, true);//设置只能选中一个按键特性lv_btnmatrix_set_btn_ctrl(btnm,1, LV_BTNMATRIX_CTRL_CHECKED);//默认选中第2个按键lv_obj_center(btnm);//居中显示}