flutter) 如何从 Joystickview 显示 'onDirectionChange' 值?

flutter) How Can I display 'onDirectionChange' value from Joystickview?

我想使用joypad(控制板库)并显示joypad的值。 我用了'setState'功能,但它在游戏手柄中没有移动内圈。

我想显示当我移动手柄时变化的值,并在以后的计算中将显示的值显示为速度值。 但是,当我移动操纵杆时改变的值没有显示。

告诉我如何显示值... 请...

class joystickWidget extends StatefulWidget {
 @override
_joystickWidgetState createState() => _joystickWidgetState();
  }

class _joystickWidgetState extends State<joystickWidget> {
 BluetoothProvider _bluetoothProvider;
 String joy = "";
 double _degree = 0.00;
 String a ="";


 void initState() {
  super.initState();
  WidgetsBinding.instance.addPostFrameCallback((_) {

  context.read<BluetoothProvider>().bluetoothState;
    });
   }



    sendMessageLed(){
   if (buttonActive2.toString()=="true"){
   _bluetoothProvider.writeData("1\r\n");
    }
   if (buttonActive2.toString() == "false"){
    _bluetoothProvider.writeData("2\r\n");
     }
    }
   sendMessageBuzzer(){
   if (buttonActive1.toString()=="true"){
    _bluetoothProvider.writeData("3\r\n");
    }
  if (buttonActive1.toString() == "false"){
    _bluetoothProvider.writeData("4\r\n");
  }
 }

 _dataCallBack(data)  {
   setState(() {
    a = data.toStringAsFixed(2);
  });
 }

   JoystickDirectionCallback onDirectionChanged(double degrees,double  distance) {
   joy = "${degrees.toStringAsFixed(2)},${distance.toStringAsFixed(2)}";
   print(joy);
   _degree = degrees;
  //_dataCallBack(_degree);
 }

  @override
     Widget build(BuildContext context) {
   _bluetoothProvider = Provider.of<BluetoothProvider>(context,listen:false);
  return Column(
   children: <Widget>[

     Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children:<Widget> [
          Row(
            children:<Widget> [
          mainAxisAlignment: MainAxisAlignment.center,
          children:<Widget> [
            Row(
              children:<Widget> [
               Text("$a"),
              ],
            )
          ],
        ),
       SizedBox(height: 50,),
      Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: <Widget>[
        Row(
            children: <Widget>[
              JoystickView(
                onDirectionChanged: (degree, direction) {
                 _dataCallBack(degree);
                },
                iconsColor: Colors.indigoAccent,
                backgroundColor: Colors.white,
                innerCircleColor: Colors.indigoAccent,
                opacity: 0.8,
                size: 350,),
            ]
           )
         ],
        ),
       ],
      );
     }
     }

您可以通过变量获取度数和距离的值。为此,您必须在有状态或无状态小部件上方声明两个变量,然后您可以在应用程序的任何地方使用这些变量。这是一个示例:

import 'package:flutter/material.dart';
import 'package:control_pad/control_pad.dart';

void main() {
  runApp(ExampleApp());
}

class ExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Control Pad Example',
      home: HomePage(),
    );
  }
}

double varDegress;
double varDistance;

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Control Pad Example'),
      ),
      body: Container(
        child: JoystickView(
        onDirectionChanged: (double degrees, double distanceFromCenter) {
          varDegress = degress; 
          varDistance = distanceFromCenter;
          },
        ),
      ),
    );
  }
}