5.14支持手势滑动的ViewFlipper

本文介绍如何在Android应用中通过重写ViewFlipper的onTouchEvent方法,实现支持手势滑动的翻页效果。通过判断触摸事件的位置,可以实现向右滑动翻到下一个页面或向左滑动翻到上一个页面的功能。

(1)支持手势滑动的ViewFlipper:
重写onTouchEvent方法

 private float startX;

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // TODO Auto-generated method stub
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: {
            startX=event.getX();
            break;
        }

        case MotionEvent.ACTION_UP:
        {
            //向右滑动
            if(event.getX()-startX>50)
            {
                 flipper.setInAnimation(this, R.anim.left_in);
                 flipper.setOutAnimation(this, R.anim.left_out);
                 flipper.showNext();

            }
            //向左滑动
            if(startX-event.getX()>50)
            {
                 flipper.setInAnimation(this, R.anim.right_in);
                 flipper.setOutAnimation(this, R.anim.right_out);
                 flipper.showPrevious();
            }
            break;
        }
        }

        return super.onTouchEvent(event);

    }
### 关于 Qt 5.14 中 QML TreeView 支持的情况 在 Qt 5.14 版本中,QML 的 `TreeView` 控件并未被官方正式引入[^3]。实际上,`TreeView` 是在 Qt Quick Controls 2 模块中的一个组件,并且直到 Qt 5.15 才得到了更广泛的改进和支持。因此,在 Qt 5.14 中尝试使用 `TreeView` 可能会遇到功能上的限制或者缺乏某些特性。 尽管如此,开发者仍然可以借助其他方式实现树形视图的功能。例如,通过组合 `ListView` 和自定义委托 (delegate),能够模拟出类似于 `TreeView` 的效果。这种方法虽然需要更多的开发工作量,但在特定场景下依然可行[^4]。 以下是基于 `ListView` 实现简单树结构的一个代码示例: ```qml import QtQuick 2.14 import QtQuick.Controls 2.14 ApplicationWindow { visible: true width: 600 height: 480 ListView { id: listView anchors.fill: parent model: ListModel { ListElement { name: "Root"; children: ["Child A", "Child B"] } ListElement { name: "Node C"; children: [] } } delegate: Item { height: 40 width: listView.width Row { Text { text: name; font.bold: !children.length } Column { visible: children.length > 0 x: 20 y: 40 Repeater { model: children Text { text: modelData } } } } } } } ``` 需要注意的是,上述方法仅适用于简单的树状数据展示需求。对于复杂的数据模型或交互逻辑,则建议升级到更高版本的 Qt(如 Qt 5.15 或以上),以便利用原生支持的 `TreeView` 组件及其完整的功能集[^5]。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值