小编Uni*_*Uni的帖子

Firebase 云消息传递和 Firebase 应用内消息传递有什么区别

Firebase 云消息传递和 Firebase 应用内消息传递有什么区别?它们都会向您的应用发送发生了某些事情的通知。我查看了他们的文档,这些是他们的单行描述:

Firebase 云消息传递:

Firebase 云消息传递 (FCM) 是一种跨平台消息传递解决方案,可让您可靠地免费发送消息。

Firebase 应用内消息传递:

通过上下文消息吸引活跃的应用程序用户。

他们都向应用程序发送消息。它们之间有什么区别,我什么时候应该使用它们?如果我想向应用程序发送用户已验证其电子邮件的消息,我应该选择哪一个?

firebase firebase-cloud-messaging firebase-in-app-messaging

15
推荐指数
2
解决办法
3106
查看次数

Flutter中如何去除TextFormField中的错误信息

如何删除TextFormField验证器创建的错误消息?我只想要红色边框,因为我没有空间来显示错误。

bool error = false;
 TextFormField ( 
      hintText:error?'please input productName':'',
      hintStyle:TextStyle(color: Colors.red), 
      validator:(v){  
       v.trim().length>0?error=false:error=true; return null; 
      }
 ) 
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

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

在 Flutter 上单击背景通知时如何导航?

单击后台FCM 通知时是否可以导航到指定路径?

我创建了一个顶级函数并将其添加到导航器路径但它不起作用,当单击后台通知时,它只会打开应用程序

我想我发现了一个问题

现在,我将fcm配置从更改home pagesplash screen. 前台没有导航到页面,我认为这是因为启动画面不再可用。当我点击通知消息时,它只会打开应用程序。

FCM 配置

onBackgroundMessage: backgroundMessageHandler
Run Code Online (Sandbox Code Playgroud)

顶层函数

Future<dynamic> backgroundMessageHandler(Map<String, dynamic> message) {
  if (message.containsKey('data')) {
    getIt<NavigationService>().navigateTo('/${message['data']['screen']}');
  }
}
Run Code Online (Sandbox Code Playgroud)

有效载荷

const payload: admin.messaging.MessagingPayload = {
                notification:{
                    title: `New Enquiry`,
                    body:`${customerName} published to ${subName}`,
                    badge: '1',
                    sound: 'default'
                },
                data: {
                    click_action: `FLUTTER_NOTIFICATION_CLICK`,
                    sound: `default`,
                    status: `chat`,
                    screen: `homePage`
                  }
            }
Run Code Online (Sandbox Code Playgroud)

main.dart

GetIt getIt = GetIt.instance;

void main() {
  setupLocator();
    runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)

材料应用

 return MaterialApp( …
Run Code Online (Sandbox Code Playgroud)

background dart firebase flutter firebase-cloud-messaging

13
推荐指数
3
解决办法
7131
查看次数

Flutter - 对单个导入而不是多个导入有影响吗?

基本上我有很多小部件、服务和东西,就像大多数人一样,我需要在整个应用程序中访问它们。我想知道是否有一个导出每个文件的单个文件,然后只是简单地在每个页面/文件中导入一个文件我需要访问某些内容,而不仅仅是导入页面需要的特定文件,它会减慢应用程序的速度吗或导致任何问题或增加文件大小等......或者它的行为是否相同?

例子

login_page.dart

import '1.dart'
import '2.dart'
Run Code Online (Sandbox Code Playgroud)

主页.dart

import '2.dart'
import '3.dart'
import '9.dart'
import '10.dart'
Run Code Online (Sandbox Code Playgroud)

settings_page.dart

import '1.dart'
import '2.dart'
import '9.dart'
import '10.dart'
Run Code Online (Sandbox Code Playgroud)

或者...

all_imports.dart:

export '1.dart'
export '2.dart'
export '3.dart'
... (up until)
export '10.dart'
Run Code Online (Sandbox Code Playgroud)

在每个飞镖文件中:

import 'all_imports.dart'
Run Code Online (Sandbox Code Playgroud)

dart

10
推荐指数
1
解决办法
779
查看次数

有没有办法将小部件与 Flutter 中一行的最右侧对齐?

我在 Flutter 中有一行有两个小部件。我试图将第一个小部件保持在屏幕中间居中,而第二个小部件强制位于屏幕的最右侧。

我试过使用 Spacer()。这会导致应用返回空白屏幕。

我也试过使用 Expanded。这会将第二个小部件完全从屏幕上发送出去。

尝试 mainAxisAlignment: MainAxisAlignment.spaceBetween 似乎没有任何效果。

@override
  Widget build(BuildContext context) {
    return new Container(
      height: MediaQuery.of(context).size.height,
      child: SingleChildScrollView(
        child: new Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisSize: MainAxisSize.max,
          children: <Widget>[
            new Container(
              child: new GestureDetector(
                onTap: () {
                  FocusScope.of(context).requestFocus(new FocusNode());
                },
                child: Column(
                  children: <Widget>[
                    SizedBox(height: 40.0),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: <Widget>[
                        new Column(
                          children: <Widget>[
                            new Container(
                              child: Row(
                                mainAxisAlignment:MainAxisAlignment.spaceBetween,
                                children: <Widget>[
                                  Container(),
                                  Container(
                                    child: Text(
                                      'Profile',
                                      textAlign: TextAlign.center,
                                      style: TextStyle(
                                        fontFamily: 'Lato',
                                        color: Colors.white,
                                        fontSize: 50.0, …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

8
推荐指数
2
解决办法
9424
查看次数

inputFormatter 应该只允许小数和负数

我想允许用户只添加数字“12345”和十进制数字(如“21321.12312”)和负数(如-23423.32432)。用户不应该能够添加多个“.” 比如“12..32”,并在第一个输入中添加“-”,比如-324.34,而不是324-4323。我使用了这个正则表达式r'^(-?\d+\.\d+)(\s*,\s*-?\d+\.\d+)+$',但无法输入任何内容。

文本字段代码:

TextFormField(
          inputFormatters: [
            FilteringTextInputFormatter.allow(
                RegExp(r'^(-?\d+\.\d+)(\s*,\s*-?\d+\.\d+)+$')),
          ],
          controller: budget,
          keyboardType: TextInputType.number,
          decoration: InputDecoration(
            contentPadding:
                EdgeInsets.only(right: 20, left: 20, top: 10, bottom: 10),
            hintText: getTranslated(context, "budget_example"),
            hintStyle: TextStyle(fontSize: 13, fontFamily: "tahoma"),
            border: OutlineInputBorder(
              borderSide: BorderSide(width: 1, color: MyColors.secondary),
              borderRadius: BorderRadius.circular(100),
            ),
          ),
        ),
Run Code Online (Sandbox Code Playgroud)

regex dart flutter inputformatter

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

将 TextField 下划线颜色更改为渐变

我可以TextField's使用以下代码将颜色的轮廓颜色更改为纯色:

TextField(
  decoration: InputDecoration(
    focusedBorder: UnderlineInputBorder(
      borderSide: BorderSide(color: Colors.orange),
    ),
  ),
),
Run Code Online (Sandbox Code Playgroud)

但是,我无法将其颜色更改为渐变,因为它只接受颜色作为输入。在 Flutter 中如何将其下划线颜色更改为线性渐变?

gradient textfield dart flutter

5
推荐指数
1
解决办法
2038
查看次数

Flutter 热重载不适用于 VSCode 中的自动保存

Flutterhot reloads每次 VS Codeauto-saves我的项目之前。几个小时前,我开始遇到这个问题,我的应用程序auto-saving没有hot-reloadCtrl+S手动按下会触发,hot reloadauto-saving不会。我已经尝试重新安装 VS Code 和 Flutter SDK,但问题仍然存在。

我新安装的 VS Code 只有以下扩展和设置:

Dart: v3.19.1
Flutter: v3.19.0
Auto-save设置为afterDelay1000ms

在 vscode 中自动保存时如何热重载?另一个人在两个小时前遇到了同样的问题:https : //github.com/Dart-Code/Dart-Code/issues/3110

dart visual-studio-code flutter

5
推荐指数
1
解决办法
1060
查看次数

如何将 JSON 字符串转换为对象的 Arraylist

我有从 HTTP 请求收到的 JSON 字符串:

     [  
       {  
      "id":15,
      "title":"1",
      "description":"desc",
      "user_id":152
     },
    {  
      "id":18,
      "title":"2",
      "description":"desc",
      "user_id":152
    },
    {  
      "id":19,
      "title":"tab3",
      "description":"zadanka",
      "user_id":152
   }
]
Run Code Online (Sandbox Code Playgroud)

如何将其转换为对象的 ArrayList?

java json arraylist

4
推荐指数
2
解决办法
8880
查看次数

copyWith() 函数有什么作用?

在从bloclibrary网站学习flutter_bloc 时,我不得不使用一个名为. 谁能向我解释一下它到底是做什么的?copyWith()

dart flutter

3
推荐指数
1
解决办法
673
查看次数

如果布尔列表中的所有值都为 true,则将变量设置为 true 的最佳方法

我有一个模型测试列表,其中测试包含一个名为 selected 的布尔属性,如果列表的 selected 属性中的所有条目都为 true,将变量设置为 true 的最佳方法是什么?

目前,我设置了一个 for 循环,该循环遍历列表中的每个条目并检查 selected 是否为 true。如果任何选择为 false,则检查器变量需要为 false:

for (var i = 0; i < List.length; i++)
    if List[i].chosen == false
       checker = false;
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来通过列表迭代来做到这一点?

dart flutter

3
推荐指数
1
解决办法
1290
查看次数

删除下拉按钮的文本和拖车图标之间的空白空间

我有一个显示字符串列表的下拉列表。字符串的值包含仅由四个字母组成的单词和由多个字母组成的单词。当所选项目是具有四个字母的项目时,这会产生布局问题。在文本和下拉按钮的尾随图标之间可以看到空白或空白区域。怎么能去掉这个空白?如何根据所选值调整下拉按钮的大小?

文本和尾随图标之间的空白空间照片:

在此处输入图片说明

列表:

List<String> textList = ["test", "this_is_a_long_text"];
Run Code Online (Sandbox Code Playgroud)

落下:

DropdownButtonHideUnderline(
      child: ButtonTheme(
       alignedDropdown: true,
       child: DropdownButton<String>(
        items: textList.map((String dropDownStringItem) {
           return DropdownMenuItem<String>(
                      value: dropDownStringItem,
                      child: Text(dropDownStringItem),
                    );
                  }).toList(),
              onChanged: (String newValueSelected) {
                _onDropDownItemSelected(newValueSelected);
              },
              value: _currentItemSelected,
            ),
          )),
Run Code Online (Sandbox Code Playgroud)

dart dropdown flutter flutter-layout

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

如何在 flutter 中单击按钮从 GridView 切换到 ListView?

我正在构建一个壁纸应用程序,想要实现切换视图的功能,例如在 FLutter 中按一下切换到GridViewListViewIconButton

看起来像这样:

我能想到实现此功能的唯一方法是通过将计数器连接到属性并通过单击的函数来控制它来更改方法crossAxisCount中的值,这可以工作,但每次我都必须热重新加载我的应用程序计数器递增或递减,GridView.count()crossAxisCountIconButton

欢迎对此问题提出任何建议或解决方案。

dart flutter

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