【TouchGFX】用swipeContainer实现页面循环

本文介绍如何在TouchGFX项目中实现类似手机主界面的页面循环效果。对比了scrollwheel和swipeContainer两个控件,由于scrollwheel的滑动阈值问题,选择了使用swipeContainer并通过巧妙的方法实现循环。详细介绍了修改过程,包括代码链接,最终成功让swipeContainer支持循环滑动。
摘要由CSDN通过智能技术生成

背景

最近项目中使用到touchGFX这个GUI,需要实现一个手机主界面左右滑动类似的菜单,并且需要循环,问题来了,需要用哪一个控件?

在这里插入图片描述
touchGFX现成控件中只有这两个控件适合,如果单纯从简单的角度,可以直接使用scrollwheel,因为他内置循环,而swipeContainer是不带有循环界面调节的。

但是,他有一个缺点,滑动必须要超过屏幕的一半才可以进行下一个界面的切换(类似swipeContainer的swipe threshold),并且没有现成的可更改API。为什么要改,因为滑动起来不流畅,很不方便,影响体验。

所以,现在有两个解决方法
1、重写scrollwheel,把那个滑动阈值问题改掉。
2、想办法让swipeContainer实现循环
3、自己写控件

先说第一种,本人已经实现了,但是scrollwheel这一个控件,继承机制很复杂:在这里插入图片描述
getNearestAlignedOffset这个函数主要是控制这个左右滑动的参数值的,重写这个函数既可以。贴个源码。

int32_t ScrollBase::getNearestAlignedOffset(int32_t offset) const
{
   
    if (itemSize == 0)
    {
   
        return offset;
    }
    if (getCircular()
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值