几周前我读到了关于flutter hooks 的内容,现在想在我的新项目中实现它。我的“基本”小部件是一个有状态的小部件,它具有某些项目原因的混合RouteAware原因。此外,每个人都有一个提供BehaviourSubject. RouteAware该块必须由 Widget 处理,这就是其 a的原因StatefulWidget。我在这里没有详细介绍,但 bloc 是通过许多依赖项构建的,并且像这样 MyWidget(bloc: //resolve bloc here) 一样传递。
有人可以帮我将其转换为 aHookWidget以及如何添加useAwareHook 吗?
class MyBloc{
void dispose(){}
void didPopNext(){}
void didPush(){}
}
class MyWidget extends StatefulWidget{
final MyBloc bloc;
MyWidget({key, this.bloc}) : super(key: key);
@override
MyWidgetState createState() => MyWidgetState();
}
class MyWidgetState extends State<MyWidget> with RouteAware{
@override
void didChangeDependencies() {
super.didChangeDependencies();
routeObserver.subscribe(this, ModalRoute.of(context));
}
@override
void dispose() {
routeObserver.unsubscribe(this);
widget.bloc.dispose();
super.dispose();
}
@override …Run Code Online (Sandbox Code Playgroud) 我的客户最近更改了他们的 Firebase 实例(这意味着它在不同的项目下,在不同的谷歌登录中)。即他们有一个想要用于生产的新实例。我使用不同的名称创建了新实例和项目以避免任何混淆。因此,对于 Android,我删除了旧的 google-services.json 并从 Firebase 下载了新的,并将其复制到 android/app 目录中。然后我审查了项目级别和应用程序级别的 Gradel 文件。那里没有问题。我检查了新的 google-services.json 文件,可以清楚地看到它指向 Firebase 的新实例。下面是一个片段:
"project_info": {
"project_number": "506498949424",
"firebase_url": "https://lbds-aeb3d.firebaseio.com",
"project_id": "lbds-aeb3d",
"storage_bucket": "lbds-aeb3d.appspot.com"
Run Code Online (Sandbox Code Playgroud)
},
旧名称是 LittleBigDeals,而不是 lbds。
实际上,这个过程对于项目的 IOS 方面来说效果很好。该应用程序现在指向新数据库。然而,当我在 Android 上安装它时,它仍然从旧数据库中检索数据。
是否有我丢失的指针或者我需要在 Android 设置中刷新。
任何对此的帮助将不胜感激。
非常感谢。
firebase flutter google-cloud-firestore flutter-dependencies
它实际上是一个非常简单的应用程序,只询问位置。我对此进行了很多搜索,非常具有推测性的问题,每个人都有不同的说法,但我自己还无法解决。我想要的是,我想询问用户的位置权限。我将其添加到 pubspec.yaml 的依赖项中:
permission_handler: ^5.0.1+1
Run Code Online (Sandbox Code Playgroud)
在 AndroidManifest.xml 中我添加了这些:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
Run Code Online (Sandbox Code Playgroud)
然后我就这样编写了 main.dart。没有做任何其他事情:
import 'package:flutter/material.dart';
import 'package:permission_handler/permiission_handler.dart';
void main() => runApp(MaterialApp(home: MyHome()));
class _MyHomeState extends StatefulWidget {
@override
_MyHomeState createState() => _MyHomeState();
}
class _MyHomeState extends State<MyHome> {
PermissionStatus _status;
@override
void initState() {
super.initState();
PermissionHandler()
.checkPermissionStatus(PermissionGroup.locationWhenInUse)
.then(_updateStatus);
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Column(
children: <Widget>[
Text('$_status'),
SizedBox(height: 60),
RaisedButton(
child: Text('Ask Permission'),
onPressed: _askPermission,
)
], //<Widget>[]
),
); //Column, SafeArea
} …Run Code Online (Sandbox Code Playgroud) 在我的应用程序栏中,我有文本和图像,但每次进入第二页时,文本和图像不再与中心对齐,因为左上角有后退按钮。
我只是想知道如何让它居中对齐,以便它在每个屏幕上看起来都一样。
appBar: AppBar(
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"Maxis",
style:
TextStyle(fontFamily: "Raleway", fontWeight: FontWeight.w300),
),
Image.asset(
"assets/images/Image.png",
width: 30,
),
Text(
"Mobile",
style:
TextStyle(fontFamily: "Raleway", fontWeight: FontWeight.w300),
),
],
),
centerTitle: true,
),
Run Code Online (Sandbox Code Playgroud) dart flutter flutter-test flutter-dependencies flutter-layout
我最近在我的 flutter 项目中导入了本机闪屏包。但是当我启动应用程序时,那里的图像太小了。请问有什么办法可以增大图片尺寸吗?
我还添加了我的 pubspec.yaml 代码
flutter_native_splash:
color: "#ffffff"
image: assets/nakupnylistlogo.png
android: true
ios: true
Run Code Online (Sandbox Code Playgroud) 我使用 google_sign_in 和 firebase_auth。这在模拟器中工作得很好,在编译 apk 并直接在真实设备上尝试时也工作得很好,但是当我将其发布到 Google Play 并从中安装我的应用程序时,它就不起作用了。
我没有收到任何错误。出现登录信息,当我单击其中一个帐户时,它会关闭而不执行任何操作。
从 Google 获取凭据后,我使用 Firebase 登录以获取该用户的真实数据:
Future googleSignIn(BuildContext context,
[String? email, facebookCredential]) async {
try {
GoogleSignInAccount googleUser;
dynamic popup = await _googleSignIn.signIn();
// cancelled login
if (popup == null) {
return null;
}
googleUser = popup;
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
await _firebaseCredential(context, credential);
} catch (error) {
return null;
}
}
_firebaseCredential(BuildContext context, credential) async {
User user = …Run Code Online (Sandbox Code Playgroud) firebase firebase-authentication google-signin flutter flutter-dependencies
我正在 flutter 中构建一个应用程序,可以从互联网上读取 pdf 文件。我使用的软件包是“advance_pdf_viewer”。我已按照文档中的说明进行操作。但我的应用程序总是在显示圆形进度指示器小部件后几秒钟崩溃。
这是我的代码
//@dart=2.9
import 'package:flutter/material.dart';
import 'package:advance_pdf_viewer/advance_pdf_viewer.dart';
class PDFviewerPage extends StatefulWidget {
const PDFviewerPage({Key key}) : super(key: key);
@override
_PDFviewerPageState createState() => _PDFviewerPageState();
}
class _PDFviewerPageState extends State<PDFviewerPage> {
bool _isLoading = true;
PDFDocument _document;
loadDocument() async {
setState(() {
_isLoading = true;
});
final document = await PDFDocument.fromURL(
"https://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf");
setState(() {
_document = document;
_isLoading = false;
});
}
@override
void initState() {
super.initState();
loadDocument();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar( …Run Code Online (Sandbox Code Playgroud) 我正在尝试从具有 POST 请求且主体在 Flutter 中的 URL 下载 .pdf 文件。我正在使用 Dio 插件进行网络调用。
到目前为止,这是我尝试做的事情:
Dio dio = Dio();
late Response response;
Future<APIResponse> downloadFile({token}) async {
await dio
.post('https://www.example.com/sample/download',
data: {
{"month": "January", "year": "2022"}
},
options: Options(
headers: {
'Authorization': 'Bearer $token',
},
))
.then((value) {
if (value.statusCode == 200) {
response = value;
// here I need the file to be downloaded
// specific folder would be /downloads folder in Internal Storage
}
});
return APIResponse.fromJson(response.data);
}
Run Code Online (Sandbox Code Playgroud)
但据我检查,Dio 没有带下载选项的 POST 方法。 …
**我花了一晚上的时间尝试裁剪图像,需要一些帮助**
image_cropper: ^1.5.0 # Used to Crop/Rotate Selected images from user's device
Run Code Online (Sandbox Code Playgroud)
///错误
错误:找不到成员:“ImageCropper.cropImage”。最终croppedImage =等待ImageCropper.cropImage(
///图像源
class ImageSourceSheet extends StatelessWidget {
// Constructor
ImageSourceSheet({required this.onImageSelected});
// Callback function to return image file
final Function(File?) onImageSelected;
// ImagePicker instance
final picker = ImagePicker();
Future<void> selectedImage(BuildContext context, File? image) async {
// init i18n
final i18n = AppLocalizations.of(context);
// Check file
if (image != null) {
final croppedImage = await ImageCropper.cropImage(
sourcePath: image.path,
aspectRatioPresets: [CropAspectRatioPreset.square],
maxWidth: 400,
maxHeight: 400,
androidUiSettings: AndroidUiSettings(
toolbarTitle: …Run Code Online (Sandbox Code Playgroud) 我的代码适用于 Quill:-
import 'package:flutter_quill/flutter_quill.dart';
body:Column(
children: [
Row(
children: [
const **Text**('category:', style: TextStyle(color: Colors.red)),
Text(widget.news.categoryName.toString(),
style: const TextStyle(color: Colors.blue)),
],
),
QuillToolbar.basic(controller: _controller),
Expanded(
child: Container(
child: QuillEditor.basic(
controller: _controller,
readOnly: false, // true for view only mode
),
),
),
);
Run Code Online (Sandbox Code Playgroud)
在代码中,文本小部件给出错误 =>
名称“Text”在库“package:flutter/src/widgets/text.dart”和“package:flutter_quill/src/models/documents/nodes/leaf.dart”中定义(通过 package:flutter_quill/flutter_quill.dart) '。
尝试对其中一个导入指令使用“作为前缀”,或者对除其中一个导入指令之外的所有导入指令隐藏名称。