MTK平台列表控件使用方法是本文要介绍的内容,主要是来了解并学习如何在MTK平台下使用列表控件,上网找找资料,看了《MMI实例培训教程》的书,修改一下代码,如下:
代码
- fixed_list_menu My_fixed_list_menu; //列表菜单框架
- fixed_icontext_menuitem My_fixed_icontext_menuitem_common; //菜单项公共属性
- #define My_fixed_list_n_items (8) //菜单项项数
- fixed_icontext_menuitem_type My_fixed_list_menuitems[My_fixed_list_n_items]; //icontext 型菜单项列表
- void *My_fixed_menuitem_pointers[My_fixed_list_n_items]; //指向菜单项列表的索引列表
- void Test_List_Ctrl(void){
- S32 i;
- EntryNewScreen(SCR_ID_GOOME_GPS_FOOTPRINT_SET_TARGET,NULL,NULL,NULL); //开始显示菜单
- memset(&My_fixed_list_menu, 0, sizeof(fixed_list_menu));
- gui_create_fixed_list_menu(&My_fixed_list_menu, 20, MMI_content_y + 5, 136, MMI_content_height - 50);
- MMI_current_menu_type = LIST_MENU;
- memset(&My_fixed_icontext_menuitem_common, 0, sizeof(fixed_icontext_menuitem));
- gui_create_fixed_icontext_menuitem(&My_fixed_icontext_menuitem_common, 136, 18); //宽高
- gui_fixed_icontext_menuitem_set_text_position( &My_fixed_icontext_menuitem_common, 24, 0); //文本偏移距离
- My_fixed_icontext_menuitem_common.flags |= UI_MENUITEM_DISABLE_BACKGROUND; //统一标志符
- memset(&My_fixed_list_menuitems, 0, sizeof(fixed_icontext_menuitem_type) * My_fixed_list_n_items);
- for (i = 0; i < My_fixed_list_n_items; i++) {
- My_fixed_list_menuitems[i].item_text = (UI_string_type)GetString(STR_ID_GOOME_GPS_FOOTPRINT); //菜单项文本
- My_fixed_list_menuitems[i].item_icon = (PU8) GetImage(IMG_GLOBAL_L1 + i); //菜单项图标
- My_fixed_list_menuitems[i].flags = (UI_MENUITEM_CENTER_TEXT_Y | UI_MENUITEM_CENTER_ICON_Y);
- My_fixed_list_menuitems[i].item_icon_handle = GDI_ERROR_HANDLE;
- My_fixed_menuitem_pointers[i] = (void*)&My_fixed_list_menuitems[i]; //给索引列表赋值
- }
- My_fixed_list_menu.items = My_fixed_menuitem_pointers; // 菜单项索引列表
- My_fixed_list_menu.common_item_data = (void*)&My_fixed_icontext_menuitem_common; // 菜单项公共属性
- My_fixed_list_menu.n_items = My_fixed_list_n_items; // 菜单项项数
- gui_set_fixed_list_menu_item_functions(&My_fixed_list_menu, // 菜单项功能接口
- gui_show_fixed_icontext_menuitem, //显示菜单项函数
- gui_measure_fixed_icontext_menuitem, //测量菜单项函数
- gui_highlight_fixed_icontext_menuitem, //高亮函数
- gui_remove_highlight_fixed_icontext_menuitem, //失去高亮函数
- gui_hide_fixed_icontext_menuitem, //菜单项隐藏函数
- NULL
- );
- My_fixed_list_menu.highlighted_item = -1; //菜单高亮项索引,此为菜单框架内部属性值,在跳转之前一定要设为-1
- gui_fixed_list_menu_goto_item(&My_fixed_list_menu, 0);
- gui_show_fixed_list_menu(&My_fixed_list_menu); //显示菜单结束
- ui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
- SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
- }
加入后开始编译,当然会出现一些其它的错误,慢慢调,后来有一个错误是说
- gui_set_fixed_list_menu_item_functions
下wrong number parament 的,再次与书中的例子比较一下,没有错,在工程中搜索该函数,发现是8个参数的,二话不说,增加resize_fixed_icontext_menuitems在gui_set_fixed_list_menu_item_functions增加刚增加的函数名,另外将NULL改为gui_get_fixed_icontext_menuitem_flag。
再次编译,说找不到resize_fixed_icontext_menuitems函数,再次添加头文件
#include "wgui_fixed_menuitems.h"
编译,无错误,在真机上调试成功。
小结:关于MTK平台列表控件使用方法的内容介绍完了,希望通过本文的学习能对你有所帮助!