使用QML Stackview滑动手势

时间:2018-05-26 23:20:08

标签: qml qt5 swipe swipe-gesture

因此,QML StackView提供了一种通过pop()函数导航回来的方法。我正在寻找一种方法去上一页,只需用UI元素按照用户的手指向右滑动(有点像SwipeView)。我怎样才能做到这一点?我环顾四周,我发现的只有https://github.com/alejoasotelo/SwipePageStackWindow,这是一个与旧PageStack做类似事情的旧项目。

1 个答案:

答案 0 :(得分:0)

执行此操作的一种可能方法是创建一个名为swiper的自定义元素,该元素具有3页的swipeview。 1和3为空白,但2有内容。当页面1处于活动状态时,除非检测到向左滑动,否则它将允许所有事件通过。第2页有一个加载程序,因此您可以更改内容。

如果在彼此之上创建其中两个,则可以在需要切换视图时将它们移到另一个前面。两个加载程序意味着内容永远不会占用过多的内存。

因此,您将拥有一个变量isBottomActive

和一种方法 函数pushNewView(view)<-会将未激活的滑动器移动到前面,将视图放入其加载器,并将currentIndex更改为2。

现在,如果您需要后退,只需向右滑动即可。滑动器视图索引会发生变化(您可以在此处绑定一种方法,以使旧的swipeview也可以使用其他视图移回底部)