buildExposureDetector method

Widget buildExposureDetector(
  1. BuildContext context,
  2. BoxConstraints constraints
)

The GestureDetector widget for setting exposure point manually. 用于手动设置曝光点的 GestureDetector

Implementation

Widget buildExposureDetector(
  BuildContext context,
  BoxConstraints constraints,
) {
  return Semantics(
    label: textDelegate.sCameraPreviewLabel(
      innerController?.description.lensDirection,
    ),
    image: true,
    onTap: () {
      // Focus on the center point when using semantics tap.
      final Size size = MediaQuery.of(context).size;
      final TapUpDetails details = TapUpDetails(
        kind: PointerDeviceKind.touch,
        globalPosition: Offset(size.width / 2, size.height / 2),
      );
      requestFocusAndExposureOnPosition(details.localPosition, constraints);
    },
    onTapHint: textDelegate.sActionManuallyFocusHint,
    sortKey: const OrdinalSortKey(1),
    hidden: innerController == null,
    excludeSemantics: true,
    child: GestureDetector(
      onTapUp: (TapUpDetails d) {
        requestFocusAndExposureOnPosition(
          d.localPosition,
          constraints,
        );
      },
      onLongPressStart: (LongPressStartDetails d) {
        requestFocusAndExposureOnPosition(
          d.localPosition,
          constraints,
          lock: true,
        );
      },
      behavior: HitTestBehavior.translucent,
      child: const SizedBox.expand(),
    ),
  );
}