0
터치 좌표에서 팝업을 표시하고 싶습니다. Stack 및 Positioned 위젯을 사용하여 팝업을 배치합니다.#flutter에서 터치 좌표를 계산하는 방법은 무엇입니까?
터치 좌표에서 팝업을 표시하고 싶습니다. Stack 및 Positioned 위젯을 사용하여 팝업을 배치합니다.#flutter에서 터치 좌표를 계산하는 방법은 무엇입니까?
스택의 부모로 GestureDetector을 추가하고 onTapDownDetails
수신기를 등록 할 수 있습니다. 이것은 청취자의 TapDownDetails에있는 탭의 전체 오프셋과 함께 모든 tapdown 이벤트에서 청취자에게 전화해야합니다.
다음은 같은 것을 보여주는 샘플 코드입니다.
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
MyHomePageState createState() => new MyHomePageState();
}
class MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Popup Demo'),
),
body: new MyWidget());
}
}
class MyWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new MyWidgetState();
}
}
class MyWidgetState extends State<MyWidget> {
double posx = 100.0;
double posy = 100.0;
void onTapDown(BuildContext context, TapDownDetails details) {
print('${details.globalPosition}');
final RenderBox box = context.findRenderObject();
final Offset localOffset = box.globalToLocal(details.globalPosition);
setState(() {
posx = localOffset.dx;
posy = localOffset.dy;
});
}
@override
Widget build(BuildContext context) {
return new GestureDetector(
onTapDown: (TapDownDetails details) => onTapDown(context, details),
child: new Stack(fit: StackFit.expand, children: <Widget>[
// Hack to expand stack to fill all the space. There must be a better
// way to do it.
new Container(color: Colors.white),
new Positioned(
child: new Text('hello'),
left: posx,
top: posy,
)
]),
);
}
}
내가 터치 이벤트 후 팝업을 보여주는 관련 질문에 대한 답변을 추가 한, 당신이 만들어 제안 게시물은 약간 지금 혼란 때문에 명확하게, 제목과 본문이 불분명하고 있지 않은 것 같습니다 서로 관련이있다. – aziza
@aziza 화면에 터치 된 좌표에서 팝업을 보여주고 싶습니다. – AjayKumar
@ aziza for example 예를 들어 화면이 그래프 인 경우 (15,15) 점을 터치하면 (15,15) ...에 표시되어야합니다. – AjayKumar