OpenHarmony开源社区
直播中

张勇

7年用户 1466经验值
私信 关注
[问答]

如何在Harmony的文本中添加超链接?

如何在鸿蒙的文本中添加超链接?

回帖(2)

siyugege

2022-4-15 11:56:28
目前Text组件里还没有这个功能,可以自己写一个

Text text = (Text)findComponentById(ResourceTable.Id_text_helloworld);

// 添加下划线

RichText richText=new RichText(text.getText());

UnderlineRichStyle underlineRichStyle = new UnderlineRichStyle(Color.BLUE);

richText.setRichStyle(underlineRichStyle,0,text.getText().length(), RangedRichStyle.Flag.INCLUDE_START_AND_END);

text.setRichText(richText);

// 点击跳转浏览器

text.setClickedListener(c -> {

    Intent intent1 = new Intent();

    Operation operation = new Intent.OperationBuilder()

            .withAction("android.intent.action.VIEW")

            .withUri(Uri.parse("https://www.baidu.com"))

            .withFlags(Intent.FLAG_NOT_OHOS_COMPONENT)

            .build();

    intent1.setOperation(operation);

    startAbility(intent1);

});
举报

张静

2022-4-15 11:57:02
RichText 能实现android SpannableString的效果,以下代码需要api=7

    @Override

    protected void initData(Intent intent) {

        Text text = findComponentById(ResourceTable.Id_text);

        // 初始化富文本

        RichText richText=new RichText("大家使用华为鸿蒙操作系统后");

        // 设置下划线样式

        UnderlineRichStyle underlineRichStyle = new UnderlineRichStyle(Color.BLUE);

        richText.setRichStyle(underlineRichStyle,4,12, RangedRichStyle.Flag.EXCLUDE);

        // 设置部分点击事件

        richText.setRichStyle(new ClickRichStyle(new ClickRichStyle.ClickListener() {

            @Override

            public void onClick(Component component) {

                System.out.println("========你点了下划线部分========");

                ToastUtil.getInstance().showToast(getContext(),"你点了下划线部分");

            }

        }),4,12, RangedRichStyle.Flag.EXCLUDE);

        text.setRichText(richText);

    }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分