平铺视图默认是拖动可以同时显示两个页面的,但这样太耗资源,我想左滑或者右滑在短暂动画后立即切换到下一个页面,但是没有找到相关的API,请教百问网的老师和各位大佬们指点指点
tileview多个瓷砖对象怎么让页面之间直接切换啊?不要那个拖拽的动画?大佬在哪里?
通常,TileView允许用户在滑动过程中预览相邻的页面,以提供更流畅的交互体验。但我希望在滑动时(一定距离)立即切换页面(有动画但是很快的切换).
目前没有用户接口能控制这个动画时间,因为 tileview 基于 lv_obj_scroll_to 切换,然而在 lv_obj_scroll_to 最终会调用 lv_obj_scroll_by 创建anim,这个anim 的lv_anim_set_time是写死的,你可以在 lvgl\src\core\lv_obj_scroll.c
中修改这个值:
#define SCROLL_ANIM_TIME_MIN 200 /*ms*/
#define SCROLL_ANIM_TIME_MAX 400 /*ms*/
分析过程 lv_tileview.c
:
lv_obj_set_tile_id
lv_obj_set_tile
lv_obj_scroll_to
lv_obj_scroll_to_y / lv_obj_scroll_to_x
lv_obj_scroll_by_bounded
lv_obj_scroll_by
uint32_t t = lv_anim_speed_to_time((lv_disp_get_hor_res(d) * 2) >> 2, 0, dx);
if(t < SCROLL_ANIM_TIME_MIN) t = SCROLL_ANIM_TIME_MIN;
if(t > SCROLL_ANIM_TIME_MAX) t = SCROLL_ANIM_TIME_MAX;
lv_anim_set_time(&a, t);
您好,我没说明白,其实我是不想要在滑动过程中预览相邻的页面的那个效果,我想通过手势直接切换tile页面.