MaterialStateMixin

snippet.packages.flutter.lib.src.material.material_state_mixin.78.

  

// ignore_for_file: directives_ordering
// ignore_for_file: unnecessary_import
// ignore_for_file: unused_import
// ignore_for_file: unused_element
// ignore_for_file: unused_local_variable
import 'dart:async';
import 'dart:convert';
import 'dart:math' as math;
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/semantics.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/animation.dart';
import 'package:flutter/services.dart';

// From: packages/flutter/lib/src/material/material_state_mixin.dart:78
class MyWidget extends StatefulWidget {
  const MyWidget({this.onPressed, Key? key}) : super(key: key);

  /// Something important this widget must do when pressed.
  final VoidCallback? onPressed;

  @override
  State createState() => MyWidgetState();
}

class MyWidgetState extends State with MaterialStateMixin {
  @override
  Widget build(BuildContext context) {
    return Container(
      color: isPressed ? Colors.black : Colors.white,
      child: InkWell(
        onHighlightChanged: updateMaterialState(
          MaterialState.pressed,
          onChanged: (bool val) {
            if (val) {
              widget.onPressed?.call();
            }
          },
        ),
      ),
    );
  }
}
  

SHARE: