温度を設定するためのフラッターウィジェットを作成しようとしています。これはサーモスタットのようなものです。私はCustomPainterを実際に画面上に描画するように拡張しましたが、今はユーザが回転できるようにグラブ機能を設定しようとしています。ウィジェットに対してタップ位置を取得する
GestureDetectorウィジェットを使用して、ユーザーが画面に触れるとコールバックを取得できますが、ノブの中心からの相対的な位置を知る必要があります。残念ながら、GestureDetectorによって提供される位置は絶対座標であり、キャンバスはウィジェットの起点に対して相対的に動作します。これらの座標の1つを他の座標に変換する方法はありますか?私は必要手段
いずれか:
1)CustomPainterウィジェット
Iの絶対位置を取得する方法をCustomPainterウィジェット
2)のタップ位置を取得する方法これらのいずれかを提供するAPIを見つけることができません。そのようなAPIは存在しますか?
コンテキスト:https://github.com/dgp1130/thermo/blob/master/lib/widgets/temp_picker.dart
それは現在、サーモスタットを回転すると動作しますされている方法が、タッチの「センター」は、約途中ためのアプリバーの高さの本当の中心地の上に実際にあります。
おかげ
'RenderBox'リファレンスをお寄せいただき、ありがとうございます。私は 'getAngleFromPosition()'を_TempPickerState自身で計算したいと思っていましたが、これははるかに意味がありますが、 'paint()'メソッド内でのみ提供される中心を知る必要があるのでできません。 _TempPickerStateにもセンターを取得する方法はありますか?ウィジェットがまだレイアウトされていないため、BuildContextから取得しようとしましたが失敗しました。 –
'RenderBox'がそのトリックをしました。 –