OpenHarmony开发者论坛
标题:
Navigation、Refresh、Scroll 联用时发现的问题
[打印本页]
作者:
natane
时间:
2024-2-26 17:11
标题:
Navigation、Refresh、Scroll 联用时发现的问题
[md]联用Navigation Refresh Scroll中发现的问题
Navigation `hideTitleBar`属性为`true`条件下:
1. Navigation 属性`titleMode` 为 `NavigationTitleMode.Free` 或 `NavigationTitleMode.Full` 时 Refresh无法进行拖动下拉刷新,拖动下拉时会滚动条会抖动,快速下拉才会触发下拉刷新;
2. Navigation 属性`titleMode` 为 `NavigationTitleMode.Mini` 时 Refresh可下拉,但Scroll 只能向下滚动,无法向上滚动,向上滚动会直接触发Refresh下拉刷新,不会等到Scroll滚动条到最上方时才触发;
Navigation `hideTitleBar`属性为`false`条件下,不会出现以上情况
源码如下:
```
@Entry
@Component
struct Index {
@State counter: number = 0
@State isRefreshing: boolean = false
@State mOffset: number = 0
@State mFriction: number = 62
private dataArray: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
@Builder
refreshBuilder() {
Column() {
Text('刷新中')
.fontSize(16)
}
.alignItems(HorizontalAlign.Center)
.justifyContent(FlexAlign.Center)
.padding(16)
.borderRadius(12)
}
build() {
Column() {
Navigation() {
Column() {
Refresh({
refreshing: $$this.isRefreshing,
offset: this.mOffset,
friction: this.mFriction,
builder: this.refreshBuilder
}) {
Scroll() {
Column() {
ForEach(this.dataArray, (item: number) => {
Stack() {
Text((item + this.counter).toString())
.fontSize(20)
}.width('100%')
.height(60)
.backgroundColor(Color.White)
.borderRadius(10)
})
}.width('100%')
}.width('100%')
.height('100%')
}
.width('100%')
.height('100%')
.onRefreshing(() => {
setTimeout(() => {
this.counter++
this.isRefreshing = false
}, 1000)
})
}
.height('100%')
.width('100%')
}
.height('100%')
.width('100%')
.toolbarConfiguration([{ value: '测试' }])
.hideTitleBar(true)
}
.height('100%')
.width('100%')
}
}
```
[/md]
作者:
深开鸿_王石
时间:
2024-2-27 10:54
其实能拉出来,但是和offset和fiction有关,给scroll加个.edgeEffect(EdgeEffect.Spring)会比较明显
作者:
natane
时间:
2024-2-27 17:13
回复
深开鸿_王石
: 那这个拉的是scroll的吧,Refresh拉不出来
作者:
深开鸿_王石
时间:
2024-2-28 17:38
回复
natane
: 我用4.0是能看到的,就是拉的距离较大
作者:
natane
时间:
2024-2-29 14:21
回复
深开鸿_王石
: 同是4.0,安装后拉的话就只能拉动Scroll。Refresh只能快速下拉才能触发
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5