概述
左右滑动菜单控件。
一般用一组按钮作为子控件,通过左右滑动改变当前的项。除了当菜单使用外,也可以用来切换页面。
slide_menu_t是widget_t的子类控件,widget_t的函数均适用于slide_menu_t控件。
在xml中使用"slide_menu"标签创建左右滑动菜单控件。如:
<slide_menu style="mask" align_v="top">
<button style="slide_button" text="0"/>
<button style="slide_button" text="1"/>
<button style="slide_button" text="2"/>
<button style="slide_button" text="3"/>
<button style="slide_button" text="4"/>
</slide_menu>
更多用法请参考:slide_menu.xml
在c代码中使用函数slide_menu_create创建左右滑动菜单控件。如:
slide_menu = slide_menu_create(win, 10, 10, 300, 60);
b = button_create(slide_menu, 0, 0, 0, 0);
widget_set_text_utf8(b, "1");
b = button_create(slide_menu, 0, 0, 0, 0);
widget_set_text_utf8(b, "2");
b = button_create(slide_menu, 0, 0, 0, 0);
widget_set_text_utf8(b, "3");
b = button_create(slide_menu, 0, 0, 0, 0);
widget_set_text_utf8(b, "4");
可按下面的方法关注当前项改变的事件:
widget_on(slide_menu, EVT_VALUE_CHANGED, on_current_changed, slide_menu);
可按下面的方法关注当前按钮被点击的事件:
widget_on(b, EVT_CLICK, on_button_click, b);
完整示例请参考:slide_menu demo
可用通过style来设置控件的显示风格,如背景颜色和蒙版颜色等等。如:
<style name="mask">
<normal bg_color="#f0f0f0" mask_color="#f0f0f0"/>
</style>
更多用法请参考:theme default
函数
属性
属性名称 |
类型 |
说明 |
align_v |
align_v_t |
垂直对齐方式。 |
clip |
bool_t |
是否动态裁剪菜单项(默认裁剪,不裁剪时,如果显示偶数项,左边会多一项)。 |
menu_w |
char* |
菜单项的宽度(后面加上px为像素点,不加px为相对百分比坐标0.0f到1.0f)(空字符串则使用控件高度)。 |
min_scale |
float_t |
最小缩放比例。 |
spacer |
int32_t |
菜单项之间的间距。 |
value |
int32_t |
值。代表当前选中项的索引。 |
事件
事件名称 |
类型 |
说明 |
EVT_VALUE_WILL_CHANGE |
value_change_event_t |
值(当前项)即将改变事件。 |
EVT_VALUE_CHANGED |
value_change_event_t |
值(当前项)改变事件。 |
widget_t* slide_menu_cast (widget_t* widget);
参数 |
类型 |
说明 |
返回值 |
widget_t* |
slide_menu对象。 |
widget |
widget_t* |
slide_menu对象。 |
widget_t* slide_menu_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
参数 |
类型 |
说明 |
返回值 |
widget_t* |
对象。 |
parent |
widget_t* |
父控件 |
x |
xy_t |
x坐标 |
y |
xy_t |
y坐标 |
w |
wh_t |
宽度 |
h |
wh_t |
高度 |
const widget_vtable_t* slide_menu_get_widget_vtable ();
参数 |
类型 |
说明 |
返回值 |
const widget_vtable_t* |
成功返回 slide_menu 虚表。 |
ret_t slide_menu_scroll_to_next (widget_t* widget);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
ret_t slide_menu_scroll_to_prev (widget_t* widget);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
ret_t slide_menu_set_align_v (widget_t* widget, align_v_t align_v);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
align_v |
align_v_t |
对齐方式。 |
ret_t slide_menu_set_clip (widget_t* widget, bool_t clip);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
clip |
bool_t |
是否动态裁剪菜单项。(关闭后,如果显示偶数项,左边会多一项) |
ret_t slide_menu_set_menu_w (widget_t* widget, const char* menu_w);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
menu_w |
const char* |
菜单项的宽度。(后面加上px为像素点,不加px为相对百分比坐标0.0f到1.0f)(空字符串则使用控件高度) |
ret_t slide_menu_set_min_scale (widget_t* widget, float_t min_scale);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
min_scale |
float_t |
最小缩放比例,范围[0.5-1]。 |
ret_t slide_menu_set_spacer (widget_t* widget, int32_t spacer);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
spacer |
int32_t |
菜单项之间的间距。 |
ret_t slide_menu_set_value (widget_t* widget, uint32_t value);
参数 |
类型 |
说明 |
返回值 |
ret_t |
返回RET_OK表示成功,否则表示失败。 |
widget |
widget_t* |
slide_menu对象。 |
value |
uint32_t |
当前项的索引。 |
align_v 属性
特性 |
是否支持 |
可直接读取 |
是 |
可直接修改 |
否 |
可持久化 |
是 |
可脚本化 |
是 |
可在IDE中设置 |
是 |
可在XML中设置 |
是 |
可通过widget_get_prop读取 |
是 |
可通过widget_set_prop修改 |
是 |
clip 属性
特性 |
是否支持 |
可直接读取 |
是 |
可直接修改 |
否 |
可持久化 |
是 |
可脚本化 |
是 |
可在IDE中设置 |
是 |
可在XML中设置 |
是 |
可通过widget_get_prop读取 |
是 |
可通过widget_set_prop修改 |
是 |
特性 |
是否支持 |
可直接读取 |
是 |
可直接修改 |
否 |
可持久化 |
是 |
可脚本化 |
是 |
可在IDE中设置 |
是 |
可在XML中设置 |
是 |
可通过widget_get_prop读取 |
是 |
可通过widget_set_prop修改 |
是 |
min_scale 属性
特性 |
是否支持 |
可直接读取 |
是 |
可直接修改 |
否 |
可持久化 |
是 |
可脚本化 |
是 |
可在IDE中设置 |
是 |
可在XML中设置 |
是 |
可通过widget_get_prop读取 |
是 |
可通过widget_set_prop修改 |
是 |
spacer 属性
特性 |
是否支持 |
可直接读取 |
是 |
可直接修改 |
否 |
可持久化 |
是 |
可脚本化 |
是 |
可在IDE中设置 |
是 |
可在XML中设置 |
是 |
可通过widget_get_prop读取 |
是 |
可通过widget_set_prop修改 |
是 |
value 属性
特性 |
是否支持 |
可直接读取 |
是 |
可直接修改 |
否 |
可持久化 |
是 |
可脚本化 |
是 |
可在IDE中设置 |
是 |
可在XML中设置 |
是 |
可通过widget_get_prop读取 |
是 |
可通过widget_set_prop修改 |
是 |