Tips:
Slide event: after clicking, slide this module.
Common scenes: rotation chart sliding, article list up and down linkage, novel page turning, etc.
Common actions of sliding events: Press, move and release
We learned the click, double click and long press events. Today we will learn a new knowledge point, sliding event, which will be often used in our actual development.
If you don't say much, you can directly operate the code:
The xml code file is as follows:
<?xml version="1.0" encoding="utf-8"?> <DirectionalLayout ohos:id="$+id:view" 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:text_helloworld" ohos:height="match_content" ohos:width="match_content" ohos:background_element="$graphic:background_ability_main" ohos:layout_alignment="horizontal_center" ohos:text="Sliding interface" ohos:text_size="40vp" /> </DirectionalLayout>
The above is our xml file. We found that I set the id for the DirectionalLayout component. This is because when we use the sliding event, we are operating our interface, so we need to set the id for DirectionalLayout, so that we can obtain the DirectionalLayout component for our convenience.
Next is our java code to write our sliding event. The code is as follows:
package com.example.mydemoslide.slice; import com.example.mydemoslide.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; 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{ private Text txt; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); //txt component found txt= (Text) findComponentById(ResourceTable.Id_text_helloworld); //Find our component that represents sliding. Because we really slide the whole page, we directly find the DirectionalLayout component DirectionalLayout view = (DirectionalLayout) findComponentById(ResourceTable.Id_view); //Bind sliding events to our components view.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) { //Get our sliding event status int touState = touchEvent.getAction(); //Status of sliding event press if(touState==touchEvent.PRIMARY_POINT_DOWN){ txt.setText("The finger clicked"); } //Status of sliding event release else if(touState==touchEvent.PRIMARY_POINT_UP){ txt.setText("The finger is loose"); } //State of sliding event movement else if(touState==touchEvent.POINT_MOVE){ txt.setText("The fingers moved"); } return true; } }
As mentioned above, we first find our component and bind our sliding event to it. Our sliding event gives us not only a component parameter, but also a touchEvent parameter. touchEvent is used to get our sliding event. getAction() can get the status of our current sliding event. The toucheEvent class provides us with many definition properties, including PRIMARY_POINT_DOWN,PRIMARY_POINT_UP and POINT_MOVE is our common attribute,
Press, release and move.
The effects are as follows:
Initial page: After pressing: After loosening: Moving:
The above is our sliding event implementation effect and code, which requires the click of the source code[ HarmonyOS long click event source code. Rar Java document class resource - CSDN Download ]Download
Tips:
In a sliding event, return false is executed only once.
return true to get the response of moving and loosening status.
================== It's not easy to share. I've seen it here. I don't like the collection===================