作者:韓茹
公司:程式咖(北京)科技有限公司
鴻蒙巴士專欄作家
ScrollView是一種帶滾動功能的元件,它採用滑動的方式在有限的區域內顯示更多的內容。
一、支援的XML屬性
ScrollView的共有XML屬性繼承自:StackLayout
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為例。
<?xml version=“1。0” encoding=“utf-8”?>br
預覽一下效果:
三、設定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:過度滾動百分比,預設值40overscrollRate:過度滾動率,預設值0。6remainVisiblePercent:應保持可見內容的最小百分比,預設值20
1、滾動指定的距離,預設單位是px。
//1。獲取scrollview物件br ScrollView scrollView = (ScrollView) findComponentById(ResourceTable。Id_scrollview);br //2。點選br scrollView。setClickedListener(component -> {br //點選一下,沿y軸將內容平滑地滾動了指定數量的畫素。br scrollView。fluentScrollByY(500);br });
預覽效果:
每點選一下,y軸上就滾動500px。
2、滾動到指定的座標位置。預設單位是px
// 點選一下,沿y軸將內容平滑地滾動了指定數量的畫素。br // scrollView。fluentScrollByY(500);br // 點選一下,沿y軸將內容平滑地滾動到指定的座標位置。br scrollView。fluentScrollYTo(500);brbr // 注意以上兩個方法的區別:fluentScrollByY(500)是滾動了500px,每次滾動的距離是500px,再點選還是會滾動500px,br // 而fluentScrollYTo(500),是固定的就滾動到500px這個位置。
預覽效果:點選一下滾動到y軸500px的位置。再點選也是一樣的,除非滑動。
注意以上兩個方法的區別:
fluentScrollByY(500)是滾動了500px,每次滾動的距離是500px,再點選還是會滾動500px, 而fluentScrollYTo(500),是固定的就滾動到500px這個位置。
3、設定佈局方向:ScrollView自身沒有設定佈局方向的屬性,所以需要在其子佈局中設定。以橫向佈局horizontal為例:
我們在layout目錄下,重新建立一個layout佈局檔案:demo1_scrollview。xml。
<?xml version=“1。0” encoding=“utf-8”?>br
預覽效果:
4、設定回彈效果。
在xml佈局中設定:
在Java程式碼中設定:
scrollView。setReboundEffect(true);
預覽效果:
5、設定縮放匹配效果。
指定滾動元件是否允許拉伸其元件以填充其視口。
在xml中設定:
在Java程式碼中設定:
brscrollView。setMatchViewportEnabled(true);