我正在尝试从第一个屏幕导航到另一个屏幕,所以基本上,我正在检查用户是否已登录,并根据该情况导航或不导航到下一个屏幕,但我收到以下错误尝试时的上下文
这是我的代码
Future _AuthenticateUser(BuildContext context){
FirebaseAuth.instance
.authStateChanges()
.listen((event) {
if(event == null){
// User is null
} else {
// here I navigate to the next screen
Navigator.push(context,
MaterialPageRoute(builder: (context) => new MainScreen()));
}
});
}
Run Code Online (Sandbox Code Playgroud)
我首先调用代码来检查用户登录状态
@override
void didChangeDependencies() {
_AuthenticateUser(context);
super.didChangeDependencies();
}
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误
The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
Run Code Online (Sandbox Code Playgroud) 我想将横幅广告放置在 Flutter 的google_mobile_ads上方或下方。BottomNavigationBar
我尝试将 BottomNavigationBar 放置在Containerad add Margin 中,但没有选项可以在 Container 内添加 2 个子项。
我尝试Column在其中添加一个小部件,BottomNavigationBar但该列转到页面的顶部。
关于如何在 的google_mobile_ads上方或下方留出一个位置有什么想法吗BottomNavigationBar?
我可以共享代码,但我需要有关如何实现它的建议、指导或指示。
我使用 SVD 来查找两组点之间的旋转矩阵。我知道这一点,R = Transpose(U) * V但我不明白 U 和 V 代表什么以及为什么这种乘法会产生旋转矩阵。
我一直在尝试使用 JSDoc 记录 JS 中的重载函数:
有 2 个用例:
assignSlave(ticket, userid);
assignSlave(ticket, firstname, lastname);
Run Code Online (Sandbox Code Playgroud)
我想让它在 VSCode 中看起来像这样:
情况1

案例2

等等...
我尝试了这里给出的解决方案,但它对我不起作用:
/**
* Test
*
* @function assignSlave
* @param {String} ticket
* @param {String} userid
*//**
* Test2
*
* @function assignSlave
* @param {String} ticket
* @param {String} firstname
* @param {String} lastname
*/
function assignSlave(a, b, c){}
assignSlave()
Run Code Online (Sandbox Code Playgroud)
我明白了:

有没有办法实现我想要做的事情?
ETA:我尝试了这篇文章,但不确定它在我的情况下是如何工作的。
在创建 agora 视频通话应用程序时,我遇到这样的错误
HandshakeException(HandshakeException:客户端握手错误(操作系统错误:CERTIFICATE_VERIFY_FAILED:证书已过期(handshake.cc:393)))
这是抛出错误的行
Response _response = await get(Uri.parse(link));
Run Code Online (Sandbox Code Playgroud)
我的代码是
import 'dart:convert';
import 'package:agora_uikit/agora_uikit.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
class VedioCall extends StatefulWidget {
String channelName = "test";
VedioCall({required this.channelName});
@override
State<VedioCall> createState() => _VedioCallState();
}
class _VedioCallState extends State<VedioCall> {
late final AgoraClient _client;
bool _loading = true;
String tempToken = "";
@override
void initState() {
getToken();
super.initState();
}
Future<void> getToken() async {
String link =
"https://Agora-Node-TokenServer.vinaym4.repl.co/access_token?channelName=${widget.channelName}";
Response _response = await get(Uri.parse(link));
Map data = jsonDecode(_response.body);
setState(() {
tempToken …Run Code Online (Sandbox Code Playgroud) 我一直在尝试获取Android设备版本(例如11、12)。我一直在尝试只获取数字
这就是我到目前为止所做的
void checkVersion(){
print(Platform.operatingSystemVersion); // it prints "sdk_gphone64_arm64-userdebug 12 S2B2.211203.006 8015633 dev-keys"
// I'm able to fetch the version number by splitting the string
// but the problem is that format of above string will vary by
// operating system, so not suitable for parsing
int platformVersion = int.parse(Platform.operatingSystemVersion.split(' ')[1]); it prints '12'
}
Run Code Online (Sandbox Code Playgroud) 在主方法中设置所有.json文件、文件和初始化后,当我尝试通过调用从终端pubspec创建文件时codegen_loader.g.dartflutter pub run easy_localization:generate时,它无法通过。甚至没有收到错误消息。
下面是命令行的片段:
PS C:\Users\Prosanto\Desktop\Android Dev\localization> flutter pub run easy_localization:generate -h
PS C:\Users\Prosanto\Desktop\Android Dev\localization> flutter pub run easy_localization:generate -S "assets/translations" -O "lib/translations"
PS C:\Users\Prosanto\Desktop\Android Dev\localization>
Run Code Online (Sandbox Code Playgroud)
什么也没发生,任何帮助或建议都是非常有帮助的。
Navigator.pop当某个值发生变化时,如何关闭屏幕(调用)?
我用来riverpod观察价值观。
flutter ×7
dart ×4
agora.io ×1
android ×1
flutter-web ×1
javascript ×1
jsdoc ×1
localization ×1
matrix ×1
svd ×1