Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振)如何显示';onDirectionChange';Joystickview的价值?_Flutter_Dart_Powerpoint - Fatal编程技术网

Flutter 颤振)如何显示';onDirectionChange';Joystickview的价值?

Flutter 颤振)如何显示';onDirectionChange';Joystickview的价值?,flutter,dart,powerpoint,Flutter,Dart,Powerpoint,我想使用操纵手柄(控制手柄库)并显示操纵手柄的值。 我使用了“设置状态”功能,但它不是在操纵手柄中移动内圈 我想显示移动操纵手柄时更改的值,并在以后的计算中将显示的值显示为速度值。 但是,移动操纵杆时更改的值不会显示 告诉我如何显示值。。。 请 class joystickWidget extends StatefulWidget { @override _joystickWidgetState createState() => _joystickWidgetState(); }

我想使用操纵手柄(控制手柄库)并显示操纵手柄的值。 我使用了“设置状态”功能,但它不是在操纵手柄中移动内圈

我想显示移动操纵手柄时更改的值,并在以后的计算中将显示的值显示为速度值。 但是,移动操纵杆时更改的值不会显示

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

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,),
            ]
           )
         ],
        ),
       ],
      );
     }
     }
类joystickWidget扩展StatefulWidget{
@凌驾
_joystickWidgetState createState()=>\u joystickWidgetState();
}
类joystickWidgetState扩展了状态{
蓝牙提供商(BluetoothProvider);;
字符串joy=“”;
双度=0.00;
字符串a=“”;
void initState(){
super.initState();
WidgetsBinding.instance.addPostFrameCallback((){
context.read().bluetoothState;
});
}
sendMessageLed(){
如果(buttonActive2.toString()=“true”){
_bluetoothProvider.writeData(“1\r\n”);
}
if(buttonActive2.toString()=“false”){
_bluetoothProvider.writeData(“2\r\n”);
}
}
SendMessage蜂鸣器(){
if(buttonActiv1.toString()=“true”){
_bluetoothProvider.writeData(“3\r\n”);
}
if(buttonActiv1.toString()=“false”){
_bluetoothProvider.writeData(“4\r\n”);
}
}
_数据回调(数据){
设置状态(){
a=数据。ToStringsGasFixed(2);
});
}
JoystickDirectionCallback onDirectionChanged(双度,双距离){
joy=“${degrees.toStringAsFixed(2)},${distance.toStringAsFixed(2)}”;
印刷(joy);
_度=度;
//_数据回调(_度);
}
@凌驾
小部件构建(构建上下文){
_bluetoothProvider=Provider.of(上下文,侦听:false);
返回列(
儿童:[
划船(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
划船(
儿童:[
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
划船(
儿童:[
正文(“$a”),
],
)
],
),
尺寸箱(高度:50,),
划船(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
划船(
儿童:[
乔伊斯蒂克维(
onDirectionChanged:(度、方向){
_数据回调(度);
},
iconColor:Colors.indigoAccent,
背景颜色:Colors.white,
innerCircleColor:Colors.indigoAccent,
不透明度:0.8,
尺寸: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;
          },
        ),
      ),
    );
  }
}

您可能需要更改问题的标签。这与PowerPoint的关系并不明显;添加更合适的标签将帮助其他人找到您的问题,这些人可能会更好地回答您的问题。谢谢您的回答。您的意思是我应该将joystickview小部件称为无状态和有状态小部件?不,我是说没关系。请先使用示例代码。然后您可以为自己定制。代码给出了您想要的。