HarmonyOS之常用组件ScrollView的功能和使用

Posted Forever_wj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HarmonyOS之常用组件ScrollView的功能和使用相关的知识,希望对你有一定的参考价值。

一、ScrollView 功能

  • ScrollView 是一种带滚动功能的组件,它采用滑动的方式在有限的区域内显示更多的内容。

二、支持的 XML 属性

属性名称中文描述取值取值说明使用案例
match_viewport是否拉伸匹配boolean类型可以直接设置true/false,也可以引用boolean资源ohos:match_viewport=“true"
ohos:match_viewport=”$boolean:true"
rebound_effect回弹效果boolean类型可以直接设置true/false,也可以引用boolean资源ohos:rebound_effect=“true"
ohos:rebound_effect=”$boolean:true"

三、创建 ScrollView

  • 在 layout 目录下的 xml 文件中创建 ScrollView,ScrollView 的展示需要布局支持,以 DirectionalLayout 为例,如下所示:
	<ScrollView
	    ohos:id="$+id:scrollview"
	    ohos:height="300vp"
	    ohos:width="300vp"
	    ohos:background_element="#FFDEAD"
	    ohos:top_margin="32vp"
	    ohos:bottom_padding="16vp"
	    ohos:layout_alignment="horizontal_center">
	    <DirectionalLayout
	        ohos:height="match_content"
	        ohos:width="match_content">
	        <Image
	            ohos:width="300vp"
	            ohos:height="match_content"
	            ohos:top_margin="16vp"
	            ohos:image_src="$media:plant"/>
	        <!-- 放置任意需要展示的组件 -->
	        ...
	    </DirectionalLayout>
	</ScrollView>
  • ScrollView 效果如下:

在这里插入图片描述

三、设置 ScrollView

  • ScrollView 的速度、滚动、回弹等常用接口如下:
方法作用
doFling(int velocityX, int velocityY)
doFlingX(int velocityX)
doFlingY(int velocityY)
设置X轴和Y轴滚动的初始速度,单位(px)
fluentScrollBy(int dx, int dy)
fluentScrollByX(int dx)
fluentScrollByY(int dy)
沿坐标轴将内容平滑地移动指定数量的像素,单位(px)
fluentScrollTo(int x, int y)
fluentScrollXTo(int x)
fluentScrollYTo(int y)
根据指定坐标平滑滚动到指定位置,单位(px)
setReboundEffect(boolean enabled)设置是否启用回弹效果,默认false
setReboundEffectParams(int overscrollPercent, float overscrollRate, int remainVisiblePercent)
setReboundEffectParams(ReboundEffectParams reboundEffectParams)
setOverscrollPercent(int overscrollPercent)
setOverscrollRate(float overscrollRate)
setRemainVisiblePercent(int remainVisiblePercent)
配置回弹效果
overscrollPercent:过度滚动百分比,默认值40
overscrollRate:过度滚动率,默认值0.6
remainVisiblePercent:应保持可见内容的最小百分比,默认值20
  • 根据像素数平滑滚动:
	btnScroll.setClickedListener(component -> {
	    scrollView.fluentScrollByY(300);
	});
  • 根据像素数平滑滚动效果如下:

在这里插入图片描述

  • 平滑滚动到指定位置:
	scrollView.fluentScrollYTo(500);
  • 平滑滚动到指定位置效果如下:

在这里插入图片描述

  • 设置布局方向:ScrollView 自身没有设置布局方向的属性,所以需要在其子布局中设置,以横向布局 horizontal 为例:
	<ScrollView
	    ...
	    >
	    <DirectionalLayout
	        ...
	        ohos:orientation="horizontal">
	        ...
	    </DirectionalLayout>
	</Scrollview>
  • 设置布局方向为横向布局效果如下:

在这里插入图片描述

  • 设置回弹效果
    • 在 xml 中设置:
	<ScrollView
	    ...
	    ohos:rebound_effect="true">
	        ...
	</ScrollView>
    • 在 Java 代码中设置:
	scrollView.setReboundEffect(true);
  • 开启回弹效果如下:

在这里插入图片描述

  • 设置缩放匹配效果
    • 在 xml 中设置:
	<ScrollView
	    ...
	    ohos:match_viewport="true">
	        ...
	</ScrollView>
    • 在 Java 代码中设置:
	scrollView.setMatchViewportEnabled(true);
  • 设置缩放匹配效果如下:

在这里插入图片描述

以上是关于HarmonyOS之常用组件ScrollView的功能和使用的主要内容,如果未能解决你的问题,请参考以下文章

4.1HarmonyOS鸿蒙开发组件ScrollView

HarmonyOS之常用组件RoundProgressBar的功能和使用

HarmonyOS之常用组件ListContainer的功能和使用

HarmonyOS之常用组件ProgressBar的功能和使用

HarmonyOS之深入分析常用组件Text的功能和使用

HarmonyOS之常用组件Image的功能和使用