1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
有图有真相
不过既然有下拉列表,那么肯定就有上拉列表,看图! 其实就是列表内容的展示方向不同而已,当下拉列表的下面还有很多可展示区域时,就可以选择往下弹出选择界面,但是当没有足够的展示区域时,我们可以选择往上弹出选择界面。 |
|
|
|
代码分析
用户可下载“圆弧对象(lv_arc)的使用”文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程test.c文件空白处。然后在test.c文件的create_test()函数中增加ddlist_test1()和ddlist_test2()函数测试。 1.下拉 01 staticvoidddlist_event_handler(lv_obj_t*obj,lv_event_tevent) 02 { 03 if(event==LV_EVENT_VALUE_CHANGED){ 04 charbuf[32]; 05 lv_ddlist_get_selected_str(obj,buf,sizeof(buf)); 06 printf(“Option:%sn”,buf); 07 } 08 } 09 10 voidddlist_test1(void) 11 { 12 /*Createadropdownlist*/ 13 lv_obj_t*ddlist=lv_ddlist_create(lv_scr_act(),NULL); 14 lv_ddlist_set_options(ddlist,“Applen” 15 “Bananan” 16 “Orangen” 17 “Melonn” 18 “Grapen” 19 “Raspberry”); 20 21 lv_ddlist_set_fix_width(ddlist,150); 22 lv_ddlist_set_draw_arrow(ddlist,true); 23 lv_obj_align(ddlist,NULL,LV_ALIGN_IN_TOP_MID,0,20); 24 lv_obj_set_event_cb(ddlist,ddlist_event_handler); 25 } 同样的这里我们创建了一个下拉列表的对象,那么创建完对象后,我们需要做什么呢?既然时下拉列表,那肯定要有下拉选项是不是?没错,就是添加我们的下拉列表选项,方法呢也很简单,我们使用lv_ddlist_set_options这个函数就可以,其中第二个参数就是我们要展示的选项,可以一次添加很多个,每个选项之间记得用“n”隔开,就像上面的一样!然后lv_ddlist_set_fix_width这里其实是设置对象的宽度,当你的每一个选择内容比较多时,建议宽度设置的大一点。接下来lv_ddlist_set_draw_arrow这个函数就是设置是否绘制那个下拉提示的箭头,如果不绘制那个箭头,可能让人不会觉得那是一个下拉列表,所以这里还是建议大家记得绘制那个小箭头!然后就是对齐方式,这里我们设置的是顶部居中对齐,最后我们设置的一个回调函数,就是我们的下拉列表响应事件!我们可以通过lv_ddlist_get_selected_str这个API提取出每一个选项的字符串,然后方便我们执行对应的操作。 2.上拉 01 void ddlist_test2(void) 02 { 03 04 /*Createadropdownlist*/ 05 lv_obj_t*ddlist=lv_ddlist_create(lv_scr_act(),NULL); 06 lv_ddlist_set_options(ddlist, “Applen” 07 “Bananan” 08 “Orangen” 09 “Melonn” 10 “Grapen” 11 “Raspberry”); 12 13 lv_ddlist_set_fix_width(ddlist,150); 14 lv_ddlist_set_fix_height(ddlist,150); 15 lv_ddlist_set_draw_arrow(ddlist, true); 16 17 /*Enableauto-realignwhenthesizechanges. 18 *Itwillkeepthebottomoftheddlistfixed*/ 19 lv_obj_set_auto_realign(ddlist, true); 20 21 /*Itwillbecalledautomaticallywhenthesizechanges*/ 22 lv_obj_align(ddlist,NULL,LV_ALIGN_IN_BOTTOM_MID,0,-20); 23 lv_obj_set_event_cb(ddlist,ddlist_event_handler); 24 } 上拉其实基本与下拉一致,我们只不过是通过lv_obj_set_auto_realign这个函数启用了对象改变后的自动对齐,这样当这个下拉控件下面没有足够的显示区域,会自动将下拉改成上拉显示,当然你也可以不设置,那么就会出现一些选项没法展示出来,造成用户没法选择,大家可以实际去测试一下试试,这里为了营造底部没有足够的显示的区域所以采用的底部居中对齐。是不是很简单的就Get到了一个非常有用的控件呢? |
|
|
|
只有小组成员才能发言,加入小组>>
795 浏览 0 评论
1154 浏览 1 评论
2530 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2713 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1075浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:47 , Processed in 0.978797 second(s), Total 50, Slave 41 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号