34.细解鸿蒙之元服务UX上架标准-支持文本选择

182 阅读4分钟

细解鸿蒙之元服务UX上架标准-支持文本选择

是否必须遵守:涉及则必须

标准项描述:

在文本内容区域,无论是在各种应用程序(如文字处理软件、网页浏览器、电子文档等)的界面中,用户都能够对文本进行多选操作。这一操作允许用户选择多个文本片段,以便执行各种不同的任务。

文本内容区域 文本内容区域是指应用程序中用于显示和编辑文本的部分。它可以是一个独立的窗口、一个特定的文本框、网页上的特定区域等。这个区域承载着文本信息,用户可以在其中进行各种操作。

多选操作 1 选择方式 鼠标操作:用户可以通过鼠标左键点击并拖动来选中连续的文本区域。例如,在一个文档中,按住鼠标左键拖动鼠标,即可选中一段连续的文字。另外,按住 Ctrl键再点击鼠标左键可以选中不连续的文本片段。例如,在文档中按住 Ctrl键,依次点击不同段落的文字,就可以选中这些不连续的文本。 键盘操作:通过键盘上的Shift键和方向键可以实现文本的多选。例如,先将光标定位到某个位置,然后按住 Shift键并按方向键,就可以选中从光标位置到指定方向的文本。若要选中不连续的文本,可以先按住Ctrl键,再按方向键来选择。 触摸屏幕(适用于移动设备):在触摸屏上,用户可以通过手指触摸屏幕并拖动来选中连续的文本。对于不连续的文本,可以先按住屏幕上的特定按钮(如Ctrl键),再点击相应的文本。 2 操作目的 复制:选中多个文本片段后可以将其复制到剪贴板,然后粘贴到其他位置。这对于需要重复使用某些文本内容的情况非常有用。例如,在一个报告中,可能需要复制特定的段落或句子。 删除:可以将选中的文本删除。这在清理文本内容、去除不需要的信息时很常用。例如删除一些多余的文字或段落。 移动:将选中的文本移动到其他位置。比如在文档中调整文本的顺序,将某段文字移动到另一个位置。 格式设置:对选中的文本进行格式设置,如字体、字号、颜色、加粗、倾斜等。例如改变选中文本的字体样式,使其突出显示。 -查找与替换:通过选中特定文本,进行查找和替换操作。例如在文档中查找某个特定的单词,并将其替换为其他内容。

多选操作的意义 1 提高工作效率:允许用户快速选中多个文本片段,节省了逐个选择和处理文本的时间。例如在处理大量文本时,能够一次性选中多个相关的文本,进行批量操作。 2 灵活处理文本:用户可以根据自己的需求对文本进行不同的操作,满足各种不同的任务要求。例如在编辑文档时,能够对不同部分的文本进行选择性处理。 3 增强用户体验:多选操作使得用户在处理文本时更加便捷和高效,提升了用户对应用程序的满意度。例如在阅读文档时,能够方便地选中感兴趣的文本进行进一步处理。 --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

// xxx.ets
// 标记为入口组件
@Entry
// 声明为组件
@Component
struct TextExample5 {
  // 存储复制的内容
  @State onCopy: string = '';
  // 存储显示的文本内容
  @State text: string = 'This is set selection to Selection text content This is set selection to Selection text content.';
  // 存储文本选中的起始位置
  @State start: number = 0;
  // 存储文本选中的结束位置
  @State end: number = 20;

  build() {
    // 创建一个 Flex 容器,设置为垂直方向排列,子元素在主轴和交叉轴上都从起始位置开始对齐
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start }) {
      // 创建一个 Text 组件,显示文本内容
      Text(this.text)
        // 设置字体大小为 12
      .fontSize(12)
        // 设置边框宽度为 1
      .border({ width: 1 })
        // 设置行高为 20
      .lineHeight(20)
        // 设置外边距为 30
      .margin(30)
        // 设置复制选项为仅在应用内复制
      .copyOption(CopyOptions.InApp)
        // 设置文本的选中范围
      .selection(this.start, this.end)
        // 监听文本复制事件
      .onCopy((value: string) => {
          // 将复制的内容存储到 onCopy 状态变量中
          this.onCopy = value;
        })
      // 创建一个按钮
      Button('Set text selection')
        // 左边距为 20
      .margin({left:20})
        // 点击事件处理函数
      .onClick(() => {
          // 变更文本选中起始点、终点
          this.start = 10;
          this.end = 30;
        })
      // 创建一个 Text 组件,显示复制的内容
      Text(this.onCopy).fontSize(12).margin(10).key('copy')
    }
    // 设置 Flex 容器的高度为 600,宽度为 335,内边距为左右上下 35
 .height(600).width(335).padding({ left: 35, right: 35, top: 35 })
  }
}

PS:实际项目中如有出入,请告知博主,博主会第一时间修改得哇~