HarmonyOS3.0点赞事件

首先在xml中创建页面

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    ohos:id="$+id:d1"//因为后面点赞双击需要在屏幕中点赞,所以添加一个屏幕的布局id为后面找到布局对象做准备
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">

   <Image
       ohos:id="$+id:img"
       ohos:height="match_content"
       ohos:width="match_content"
       ohos:image_src="$media:white"
       ohos:background_element="cyan"//最开始是空白爱心,为了更好展示,加一个背景颜色
       />

</DirectionalLayout>

运行得到图片:
点赞界面
接着在MainAbilitySlice中进行编译点赞事件

package com.example.myapplication.slice;

import com.example.myapplication.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.Image;

public class MainAbilitySlice extends AbilitySlice implements Component.DoubleClickedListener {
    Image image;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //1. 找到图片组件
        image = (Image)findComponentById(ResourceTable.Id_img);
        //有屏幕才能点赞,所以先找到铺面屏幕的布局对象
        DirectionalLayout dir = (DirectionalLayout)findComponentById(ResourceTable.Id_d1);
        //选中dir变量,按Alt+enter,选中split就可以将变量分离,如下:

        //DirectionalLayout dir;
        //dir = (DirectionalLayout)findComponentById(ResourceTable.Id_d1);

        //2. 给布局对象添加事件
        dir.setDoubleClickedListener(this);
        //单击图片对象取消点赞
        image.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                Image image2 =(Image)component ;
                image2.setImageAndDecodeBounds(ResourceTable.Media_white);
            }
        });
    }


    /*
    两种情况,第一是双击屏幕点赞,再次双击就取消点赞,另一种是双击点赞,单击爱心图片取消点赞
     */
    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
    //boolean flag=false;
    //如果是白心,为FALSE,则双击点赞后变为红心
    //如果是红心,为TRUE,则双击点赞后变为白心
    @Override
    public void onDoubleClick(Component component) {
        //修改图片为红色的心
        /*if(flag){
            image.setImageAndDecodeBounds(ResourceTable.Media_white);
            flag=false;
        }
        else{*/
            image.setImageAndDecodeBounds(ResourceTable.Media_red);
            //flag=true;
        //}

    }
}

展示结果
双击点赞
可以是代码运行出的双击点赞,单击爱心取消点赞的情况;
也可以是注释中的双击点赞,双击取消的情况。

uniapp收藏点赞红心功能可以通过以下步骤实现: 1. 首先,需要在页面上布局一个包含红心图标的组件。这个组件可以使用<uni-icons>标签,并设置不同的图标类型和颜色,根据当前的收藏状态显示不同的图标。 2. 在点击红心图标的时候,需要触发一个事件。这个事件可以使用@click来监听,然后调用相应的方法来改变收藏状态。 3. 接下来,需要在组件内部设置一个计算属性isLike,来动态地判断当前文章是否已被用户收藏。这可以通过判断用户的登录状态和用户的收藏列表中是否包含当前文章的id来实现。 4. 最后,根据收藏状态来改变红心图标的样式。如果文章已被收藏,将图标设置为填充红心的样式,否则则显示一个空心红心的样式。 通过以上步骤,就可以实现uniapp中的收藏点赞红心功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue+Bootstrap收藏(点赞)功能逻辑与具体实现](https://download.csdn.net/download/weixin_38635092/14752593)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [uniapp-文章收藏功能实现](https://blog.csdn.net/weixin_41558808/article/details/122407004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值