반응형
플러터의 이미지 맵 같은 기능?
꽤 많이 찾아봤는데 확실한 답을 찾지 못해서 이게 속임수라면 솔직히 시도해봤어요.
나는 HTML 기반 하이브리드 플랫폼( specif적으로 Trigger.io )에서 재작성 및 전환 중인 앱이 있다. 바로 Flutter and Dart에서 재작성을 수행한다.
앱의 일부는 사용자가 인체 이미지를 클릭할 수 있는 아주 간단한 화면을 포함하고 있으며, 이미지 맵을 통해 신체 부위(오른쪽 팔뚝, 왼쪽 무릎, 머리 등)에 대한 식별자와 캡션을 돌려받는다.
Flutter에서 이 동작과 기능에 대한 유사점을 찾을 수 없습니다. 내가 생각만 하다가 단순한 걸 놓친 건 아닐까?
대단히 감사합니다.
를 감싸서 탭된 좌표를 확인하고 그에 따라 동작하는 콜백을 지정할 수 있습니다.
전역 좌표를 로컬 좌표로 변환하려면 다음을 참조하십시오
다음은 대략적인 시도입니다:
class ImageMap extends StatelessWidget {
const ImageMap({
Key key,
@required this.image,
@required this.onTap,
@required this.regions,
}) : super(key: key);
final Widget image;
final List<Path> regions;
/// Callback that will be invoked with the index of the tapped region.
final void Function(int) onTap;
void _onTap(BuildContext context, Offset globalPosition) {
RenderObject renderBox = context.findRenderObject();
if (renderBox is RenderBox) {
final localPosition = renderBox.globalToLocal(globalPosition);
for (var (index, path) in regions.indexed) {
if (path.contains(localPosition)) {
onTap(index);
return;
}
}
}
}
@override
Widget build(BuildContext context) {
return GestureDetector(
onTapDown: (details) => _onTap(context, details.globalPosition),
child: image,
);
}
}
반응형
'개발하자' 카테고리의 다른 글
장치에 공간이 남아 있지 않습니다. 예상치 못한 일입니다. 볼륨 마운트.kubernetes 클러스터의 볼륨에 대한 설정 실패 (0) | 2023.09.28 |
---|---|
주피터 노트북 사용 권한을 로드하는 동안 오류가 발생했습니다. iynb (0) | 2023.09.27 |
주피터 노트북을 사용할 때 "asyncio.run()은 실행 중인 이벤트 루프에서 호출할 수 없습니다." (0) | 2023.09.26 |
파이썬에서 코드 객체를 만드는 방법은? (0) | 2023.09.26 |
how to select a long list of id's in sql using python (0) | 2023.09.25 |