ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

(3.4)HarmonyOS鸿蒙滑动事件三个动作

2021-08-12 16:29:41  阅读:342  来源: 互联网

标签:鸿蒙 POINT import 按下 HarmonyOS 3.4 ohos 滑动 txt


接口名:TouchEventListener

滑动事件里面分为三个动作:按下,移动,抬起
PRIMARY_POINT_DOWN:按下
POINT_MOVE:移动
PRIMARY_POINT_UP:抬起

手机坐标:
手机左上角的点为原点。向右为X轴。向下为Y轴。垂直于屏幕向上为Z轴。

方法返回值:
true表示继续执行后面的动作
false表示不会继续执行后面的动作

跟单击事件类似,滑动事件也有4种写法,这里采用当前类作为实现类这种写法,其他写法可以参见《单击事件的4种写法》


①MainAbilitySlice.java文件

package com.example.yeman.slice;

import com.example.yeman.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.multimodalinput.event.TouchEvent;

public class MainAbilitySlice extends AbilitySlice implements Component.TouchEventListener{
    Text txt;
    int count;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //通过id找到布局对象(其也可以理解是一种组件)
        DirectionalLayout dl = (DirectionalLayout) findComponentById(ResourceTable.Id_dl);
        //通过id找到文本框组件
        txt = (Text) findComponentById(ResourceTable.Id_txt);
        //给整个布局添加滑动事件,当在整个布局上滑动时,就会不断调用本类中onTouchEvent方法
        dl.setTouchEventListener(this);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }

    @Override
    public boolean onTouchEvent(Component component, TouchEvent touchEvent) {
        //component表示滑动的哪个组件,布局也是一种组件,实际上这里示例就是在整个布局上进行的。
        //touchEvent表示动作对象(按下,滑动,抬起)。
        count++; //可以用来记录一下该方法被调用次数
        //获取当前手指对于屏幕进行的操作(按下,滑动,抬起)
        int action = touchEvent.getAction(); //1表示按下,2表示抬起,3表示滑动(移动)
        if (action == TouchEvent.PRIMARY_POINT_DOWN){
            txt.setText("按下" + count);
        }else if (action == TouchEvent.PRIMARY_POINT_UP){
            txt.setText("抬起" + count);
        }else if (action == TouchEvent.POINT_MOVE){
            txt.setText("滑动" + count);
        }
        return true;
    }
}

②ability_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    ohos:id="$+id:dl"
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">

    <Text
        ohos:id="$+id:txt"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text="这里是文本框"
        ohos:text_size="100"/>

</DirectionalLayout>

标签:鸿蒙,POINT,import,按下,HarmonyOS,3.4,ohos,滑动,txt
来源: https://blog.csdn.net/m0_46653805/article/details/119646585

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有