我正在用 flutter 創建一個移動應用程式。首先,我必須連接到藍牙。連接到特定設備后,我必須重定向到下一頁,即主頁。此螢屏不顯示設備的任何資訊,但我必須在此螢屏中通過藍牙接收資料。我做這樣的事情:
if (snapshot.data == BluetoothDeviceState.connected) {
WidgetsBinding.instance.addPostFrameCallback(
(_) {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => MainScreen()));
BluetoothServiceList(device: d);
BluetoothDeviceStateHandler(
device: d,
);
},
);
return ElevatedButton(
child: const Text('CONNECTED'),
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => MainScreen()));
BluetoothServiceList(device: d);
BluetoothDeviceStateHandler(
device: d,
);
});
}
這兩個功能 BluetoothServiceList并存BluetoothDeviceStateHandler在于另一個螢屏中,但我不應該再顯示這個螢屏了。
所有的功能都應該在這個類中執行而不顯示任何東西。我只想在從其他設備接收資料時顯示警報。
class MainScreen extends StatelessWidget {
const MainScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: new Stack(
children: <Widget>[
new Container(
decoration: new BoxDecoration(
image: new DecorationImage(
image: new AssetImage("assets/Fond.png"),
fit: BoxFit.cover,
),
),
),
Align(
alignment: Alignment.bottomLeft,
child: FloatingActionButton(
onPressed: () {},
child: Image.asset('assets/Alerte notif.png'),
elevation: 30,
),
),
Align(
alignment: Alignment.bottomRight,
child: FloatingActionButton(
onPressed: () {},
child: Image.asset('assets/Panneau distance rouge.png'),
elevation: 15,
),
),
Align(
alignment: Alignment.bottomCenter,
child: TextButton(
onPressed: () {},
child: (Image.asset(
'assets/camion2.png',
height: 200,
width: 500,
)),
),
),
],
)),
);
}
}
這里有人可以幫助我嗎?我想知道我的邏輯是否正確,是否有針對我所想的解決方案。
uj5u.com熱心網友回復:
有一些方法:
- 使用回呼函式
- 在下一個螢屏上使用 initState 并在那里重寫上一個螢屏代碼的功能。
- 如果藍牙已連接,請在下一步中寫入 if 的條件,然后運行該函式。如果您有任何問題或沒有得到它,請在此處發表評論我在線
uj5u.com熱心網友回復:
您可以通過Callback Function將上一屏的功能呼叫到下一屏。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/535035.html
標籤:扑功能镖触发器执行
