小编use*_*201的帖子

CachedNetworkImage 只显示占位符,不加载 Flutter 聊天应用中的图像

首先,我是一个完整的初学者(不仅在 dart/flutter 方面),而且在一般的编程方面。我目前正在开发一个聊天应用程序。

目标:当我在 ChatScreen 中选择图像时 - 类似于例如 WhatsApp - 它应该立即显示为消息(带有加载符号的占位符,当它上传到 Firestore 时)。

问题:一切正常,但有一个问题:当我通过 imagepicker 选择图像时,它已上传,但在聊天中显示为消息之前会有延迟。imagepicker -> 写入 Firestore -> Streambuilder (listView.builder)。

我的尝试:我正在使用 CachedNetworkImage,但不幸的是,它一直显示占位符(CircularProgressIndicator),而不是实际图像。如果我只是显示图像,一切正常(除了延迟)。

此外,我非常感谢一些使应用程序运行得更快/改进代码的想法;-)。

//Chat screen which lists all the chat messages, including _handleSubmitted and the _buildTextComposer

import 'dart:math';
import 'dart:io';

import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_database/firebase_database.dart';
import 'package:intl/intl.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:transparent_image/transparent_image.dart';
import 'package:flutter_image/network.dart';
import 'package:flutter_native_image/flutter_native_image.dart';

final database = Firestore.instance
    .collection('nachrichten')
    .document('G5xlQHvb56ZqpWs7ojUV');
final reference = …
Run Code Online (Sandbox Code Playgroud)

image dart flutter

7
推荐指数
2
解决办法
7609
查看次数

Firebase 消息传递仅适用于调试,但不适用于发布模式 (iOS)

我正在使用带有 firebase 消息传递插件的 flutter 框架来启用推送通知。在调试模式下编译我的 Flutter 应用程序时,Firebase 消息传递在 iOS 上正常工作。我还没有在安卓上试过。但是当我在发布模式下编译时,没有出现推送通知。在 Firebase 中,我还没有填写 app-name 和 store-id,因为该应用程序尚未在 Apple AppStore 中发布。这可能是问题吗?

firebase flutter firebase-cloud-messaging flutter-layout

7
推荐指数
1
解决办法
671
查看次数

iOS 上的向后滑动手势被 WillPopScope 覆盖

如果我使用 WillPopScope 用新路由覆盖 BackButton 行为,它工作正常。但是在 iOS 上,自动的“SwipeBack”手势不再起作用。如何在 iOS 上设置 SwipeBack 手势以将当前屏幕推送到具有“StartScreen”类的页面?

WillPopScope(onWillPop: (){
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => StartScreen(),
        ),
      );
    }
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

6
推荐指数
1
解决办法
3061
查看次数

让表情符号在文本中变大?

知道如何在 Text() 小部件中仅使表情符号的字体大小变大吗?

问题是 Text() 小部件会自动解析表情符号。当然,我可以增加整体文本大小,但我希望文本保持相同的字体大小。

flutter

5
推荐指数
2
解决办法
2958
查看次数

带有 Firebase 实时数据库和 futurebuilder 的 Gridview.builder

来自 Firestore,我在如何从 Firebase 实时数据库接收数据方面有些挣扎。我只想要从实时数据库加载的图像的漂亮网格视图。

Error: flutter: The following NoSuchMethodError was thrown building:
flutter: Class 'DataSnapshot' has no instance method '[]'.
flutter: Receiver: Instance of 'DataSnapshot'
Run Code Online (Sandbox Code Playgroud)

我猜它与索引有关。不知道如何在列表中正确映射它。

import 'package:cached_network_image/cached_network_image.dart';
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/material.dart';

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Container(
        alignment: Alignment.center,
        padding: const EdgeInsets.all(16.0),
        child: new FutureBuilder(
            future: FirebaseDatabase.instance
                .reference()
                .child('messages')
                .child('1551276762582')
                .orderByChild('messagetype')
                .equalTo('1')
                .once(),
            builder: (BuildContext context, AsyncSnapshot snapshot) {
              if (snapshot.hasData) {
                if (snapshot.data != null) {
                  return new Column(
                    children: <Widget>[ …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-realtime-database flutter google-cloud-firestore flutter-layout

0
推荐指数
1
解决办法
2255
查看次数