Skip to content
Snippets Groups Projects
graph.dart 1.84 KiB
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:random/painters/graph_painter.dart';

import 'package:random/provider/data.dart';

class GraphPage extends StatelessWidget {
  static String code = 'graph';

  @override
  Widget build(BuildContext context) {
    Data myProvider = Provider.of<Data>(context);
    double boardWidth = MediaQuery.of(context).size.width;

    Scaffold pageContent = Scaffold(
      appBar: AppBar(
        elevation: 0,
        actions: <Widget>[],
      ),
      backgroundColor: Colors.blue,
      body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Center(
              child: GestureDetector(
                onTapUp: (details) {
                  double xTap = details.localPosition.dx;
                  double yTap = details.localPosition.dy;
                  print('[' + xTap.toString() + ',' + yTap.toString() + ']');
                },
                child: Container(
                  margin: EdgeInsets.all(4),
                  padding: EdgeInsets.all(4),
                  child: CustomPaint(
                    size: Size(boardWidth, boardWidth),
                    willChange: false,
                    painter: GraphPainter(myProvider),
                    isComplex: true,
                  ),
                ),
              ),
            ),
          ],
        ),
      ),
    );

    return SizedBox.expand(
      child: Container(
        child: FittedBox(
          fit: BoxFit.contain,
          alignment: Alignment.center,
          child: SizedBox(
            height: (MediaQuery.of(context).size.height),
            width: (MediaQuery.of(context).size.width),
            child: pageContent,
          ),
        ),
      ),
    );
  }
}