flutter_popmenu_sdk 0.0.2 copy "flutter_popmenu_sdk: ^0.0.2" to clipboard
flutter_popmenu_sdk: ^0.0.2 copied to clipboard

outdated

a flutter plugin for using popmenu

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_popmenu_sdk/flutter_popmenu_sdk.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String platformVersion;
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      // platformVersion = await FlutterPopmenuSdk.platformVersion;
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }
List <PopMenuModel>chooseList = [
  PopMenuModel(title: '哈哈',menuId: 1),
  PopMenuModel(title: '哈哈',menuId: 2),
  PopMenuModel(title: '哈哈',menuId: 3),
];
//   double width;
//   double height;
//   double left;
//   double top;
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeWidget(chooseList: chooseList,)
    );
  }
}

_clickAction(int index){
  print('哈哈哈'+index.toString());
}

class HomeWidget extends StatefulWidget {
  List <PopMenuModel>chooseList;
  @override
  _HomeWidgetState createState() => _HomeWidgetState();
  HomeWidget({this.chooseList});
}

class _HomeWidgetState extends State<HomeWidget> {
  GlobalKey anchorKey = GlobalKey();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(//
          child: GestureDetector(
            key:anchorKey,
            onTap: (){
              print('RenderObject renderObject = context.findRenderObject();----------------------------');
              RenderBox renderBox = anchorKey.currentContext.findRenderObject();
              var offset =  renderBox.localToGlobal(Offset.zero);
              Navigator.push(context, PopRoute(child: Popup(
                child: PopMenu(chooseList: widget.chooseList,width:70,height:127,clickFn: _clickAction),
                left: offset.dx,
                top: offset.dx + 127,
                // width: 70,
                // height: 127,
                onClick: (){
                  print("exit");
                },
              ),),
              );
            },
            child: Text('Running on: _platformVersion\n'),
          )
        ),
      );
  }
}
0
likes
15
pub points
0%
popularity

Publisher

unverified uploader

a flutter plugin for using popmenu

Homepage

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_popmenu_sdk