HarmonyOS鸿蒙Next中PhotoPickerComponent设置maxPhotoSelectNumber后,达到最大数量时,点开大图还可以选中其他图片
HarmonyOS鸿蒙Next中PhotoPickerComponent设置maxPhotoSelectNumber后,达到最大数量时,点开大图还可以选中其他图片
下面是我的执行代码,这段代码设置maxPhotoSelectNumber后,还可以通过打开大图左右划选中图片
Column({ space: 12 }) {
Scroll() {
PhotoPickerComponent({
pickerOptions: {
maxPhotoSelectNumber:3,
maxVideoSelectNumber:0,
isPhotoTakingSupported:false,
maxSelectedReminderMode: ReminderMode.MASK
},
onSelect: (uri: string) => this.onSelect(uri),
onEnterPhotoBrowser: (photoBrowserInfo: PhotoBrowserInfo): boolean => this.onEnterPhotoBrowser(photoBrowserInfo),
pickerController: this.pickerController
})
.width('100%')
.height('100%')
}
.width('100%')
.height(400)
Column() {
Button($r('app.string.confirm'))
.width('100%')
.height(40)
.onClick(() => {
this.isShowPicker = false;
this.isShowGet = false;
})
}
.width('100%')
.height(40)
.padding({ left: 16, right: 16 })
}
.width('100%')
.height(452)
.margin({ top: 16, bottom: 44 })
.justifyContent(FlexAlign.SpaceBetween)
更多关于HarmonyOS鸿蒙Next中PhotoPickerComponent设置maxPhotoSelectNumber后,达到最大数量时,点开大图还可以选中其他图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好。
IDE和SDK版本是多少可以提供下吗?
更多关于HarmonyOS鸿蒙Next中PhotoPickerComponent设置maxPhotoSelectNumber后,达到最大数量时,点开大图还可以选中其他图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,PhotoPickerComponent
的maxPhotoSelectNumber
仅限制初始选择器界面的图片选择数量。当用户点开大图浏览时,当前实现逻辑允许继续选择图片,这是组件默认行为。要限制大图选择,需监听onPhotoSelected
回调并在达到maxPhotoSelectNumber
时禁用选择操作。组件版本3.1.5存在该限制缺失问题。
这是一个已知的PhotoPicker组件行为问题。在HarmonyOS Next中,当设置maxPhotoSelectNumber
限制后,虽然在主界面选择图片时会受到数量限制,但在进入图片浏览器(大图预览)模式后,用户仍可以通过左右滑动并点击选中按钮来绕过这个限制。
要解决这个问题,建议在onEnterPhotoBrowser
回调中进行额外检查。当已选图片数量达到maxPhotoSelectNumber
时,可以返回false
阻止进入大图预览模式,或者在大图预览界面禁用选择功能。例如:
onEnterPhotoBrowser(photoBrowserInfo: PhotoBrowserInfo): boolean {
if (this.selectedPhotos.length >= 3) { // 3是您设置的maxPhotoSelectNumber
return false; // 阻止进入大图预览
}
return true;
}
或者您也可以在onSelect
回调中检查已选数量,如果超过限制则取消最新选择。这需要配合状态管理来实现。