我正在开发一个项目,其中用户数据将保存在 Fire 存储中,当用户使用 google 登录时,我正在为用户制作新文档。这是我的代码如下
import 'package:firebase_auth/firebase_auth.dart';
import 'package:gfd_official/User/User.dart';
import 'package:gfd_official/services/database.dart';
import 'package:google_sign_in/google_sign_in.dart';
class GSignInhelp {
final FirebaseAuth _auth = FirebaseAuth.instance;
//Firebase User
Userdat _userFromFirebase(User user) {
return user != null ? Userdat(uid: user.uid) : null;
}
//auth change user stream
Stream<Userdat> get user {
return _auth.authStateChanges().map(_userFromFirebase);
}
Future signInWithGoogle() async {
GoogleSignIn googleSignIn = GoogleSignIn();
final account = await googleSignIn.signIn();
final auth = await account.authentication;
final credential = GoogleAuthProvider.credential(
accessToken: auth.accessToken,
idToken: auth.idToken,
);
try {
final res = …Run Code Online (Sandbox Code Playgroud) 当可拖动对象在飞行中时,如何使鼠标光标变为?SystemMouseCursors.grabbing
这是我到目前为止所拥有的。
return Draggable(
data: data,
onDragCompleted: () {
setState(() {
data = widget.create();
});
},
child: MouseRegion(
cursor: SystemMouseCursors.grab,
child: child: child,
),
childWhenDragging: MouseRegion(
cursor: SystemMouseCursors.grabbing,
child: child,
),
feedback: MouseRegion(
cursor: SystemMouseCursors.grabbing,
child: child,
)
);
Run Code Online (Sandbox Code Playgroud)
这样,当鼠标悬停而不是拖动时(SystemMouseCursors.grab),如果您不将鼠标从原点移动而是抓取(SystemMouseCursors.grabbing),则光标会正确运行。
然而,一旦您将其拖离原点,它就会直接返回到SystemMouseCursors.basic.
如何让光标贯穿SystemMouseCursors.grabbing整个可拖动的飞行?
我iOS商店里已经有一个应用程序,现在计划用新版本将其替换为 Flutter release。
我想UserDefaults在 Flutter 代码中访问本机应用程序的数据。
使用我得到的 Flutter 文档中建议的方式null value。我尝试过的是:
在我的pubspec.yaml文件中:
dependencies:
shared_preferences: ^0.5.12+4
Run Code Online (Sandbox Code Playgroud)
我是我的home.dart类文件,我正在导入标头:
import 'package:shared_preferences/shared_preferences.dart';
Run Code Online (Sandbox Code Playgroud)
iOS这就是我尝试从应用程序访问应用程序中存储的数据的方式native,我在 flutter 项目中使用相同的包 ID (包 ID)来覆盖应用程序,并且它已成功覆盖。
@override
void initState() {
super.initState();
getFromLocalMemory('user').then((value) =>
userInfo = value
);
}
Future<String> getFromLocalMemory(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String user = prefs.getString(key);
return user;
}
Run Code Online (Sandbox Code Playgroud)
它总是返回 null。而“user”键在从 iOS 本机应用程序获取时具有数据。
在Dart,我理解super这样的工作原理:
class Foo {
Foo(int a, int b) {
//Code of constructor
}
}
class Bar extends Foo {
Bar(int a, int b) : super(a, b);
}
Run Code Online (Sandbox Code Playgroud)
我真的不明白在 的(或)类super中使用时发生了什么。cubitblocsflutter_bloc
例如,我不明白CounterCubit类何时扩展Cubit:CounterCubit extends Cubit<CounterState>并且该类CounterState可以用作cubit.
class CounterState {
int counterValue;
CounterState({@required this.counterValue});
}
class CounterCubit extends Cubit<CounterState> {
CounterCubit() : super(CounterState(counterValue: 0));
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试单击“添加更多”来添加多个textformfileds,并尝试Button访问表单提交上所有字段的值。
我没有获得dynamic添加字段的值。
我按照这个网址dynamically添加textformfields。
这是我的code。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Dynamic TextFormFields',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyForm(),
debugShowCheckedModeBanner: false,
);
}
}
class MyForm extends StatefulWidget {
@override
_MyFormState createState() => _MyFormState();
}
class _MyFormState extends State<MyForm> {
final _formKey = GlobalKey<FormState>();
TextEditingController _nameController;
TextEditingController _name1Controller;
static …Run Code Online (Sandbox Code Playgroud)