标签: flutter

查找停用的小部件的祖先是不安全的

我是 Flutter 的新手,我正在尝试使用 Dialog 接收数据。当单击 textField 时,会出现 image2 的错误...

布局的图像 错误的图像

show(BuildContext context){

    var dialog = Dialog(
      child: Container(
        margin: EdgeInsets.all(8.0),
        child: Form(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              TextFormField(
                decoration: InputDecoration(
                    labelText: "Insira o número de telefone",
                    border: OutlineInputBorder(
                        borderRadius: BorderRadius.all(Radius.circular(2.0)))),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.end,
                children: <Widget>[
                  FlatButton(
                      onPressed: () {
                        Navigator.of(context).pop();
                      },
                      child: Text("Cancelar")),
                  FlatButton(
                      onPressed: () {
                        Navigator.of(context).pop();
                      },
                      child: Text("Aceitar"))
                ],
              )
            ],
          ),
        ),
      ),
    );

    showDialog(context: context,builder: (context){
      return dialog;
    });
  }
Run Code Online (Sandbox Code Playgroud)

这是我的代码。

I/flutter (31032): Looking …
Run Code Online (Sandbox Code Playgroud)

dialog dart flutter flutter-widget

54
推荐指数
6
解决办法
8万
查看次数

任务“:app:mergeDexDebug”执行失败。火店| 扑

尝试在我的项目中使用 Firestore。我的项目是一个全新的项目,但在我的设备上运行应用程序时出现问题,但没有出现错误: 任务“:app:mergeDexDebug”的执行失败。

我的应用正在使用 AndroidX。我已经添加了我的 google-services.json 文件,按照步骤等操作。

yaml文件:

dependencies:
  cloud_firestore: ^0.13.3
Run Code Online (Sandbox Code Playgroud)

android/build.gradle:

com.google.gms:google-services:4.3.3
Run Code Online (Sandbox Code Playgroud)

完整错误:

FAILURE:构建失败,出现异常。

出了什么问题:任务 ':app:mergeDexDebug' 执行失败。执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.builder.dexing.DexArchiveMergerException 时发生故障:合并 dex 档案时出错:.dex 文件中的方法引用数不能超过 64K。在https://developer.android.com/tools/building/multidex.html了解如何解决此问题

dart flutter google-cloud-firestore

54
推荐指数
4
解决办法
6万
查看次数

什么断言在飞镖?

我只想知道在 Dart中assert有什么用。我试图自己弄清楚,但我无法做到。如果有人向我解释assert的使用,那就太好了。

dart flutter

53
推荐指数
3
解决办法
3万
查看次数

异步等待 Navigator.push() - 出现 linter 警告:use_build_context_synchronously

在 Flutter 中,所有Navigator将新元素推送到导航堆栈的函数都会返回 a Future,因为调用者可以等待执行并处理结果。

我大量使用它,例如将用户(通过push())重定向到新页面时。当用户完成与该页面的交互时,我有时还希望原始页面pop()

onTap: () async {
  await Navigator.of(context).pushNamed(
    RoomAddPage.routeName,
    arguments: room,
  );

  Navigator.of(context).pop();
},
Run Code Online (Sandbox Code Playgroud)

一个常见的示例是使用带有敏感操作(例如删除实体)的按钮的底部工作表。当用户单击该按钮时,将打开另一个底部工作表,要求确认。当用户确认时,确认对话框以及打开确认底部表单的第一个底部表单将被关闭。

所以基本上onTap底部工作表内的“删除”按钮的属性如下所示:

onTap: () async {
  bool deleteConfirmed = await showModalBottomSheet<bool>(/* open the confirm dialog */);
  if (deleteConfirmed) {
    Navigator.of(context).pop();
  }
},
Run Code Online (Sandbox Code Playgroud)

这种方法一切都很好。我遇到的唯一问题是 linter 发出警告:use_build_context_synchronouslyBuildContext ,因为我在函数完成后使用相同的警告async

我忽略/暂停此警告是否安全?但是,我如何使用相同的后续代码等待导航堆栈上的推送操作BuildContext?有合适的替代方案吗?一定有可能做到这一点,对吧?

PS:我不能也不想检查该mounted属性,因为我没有使用StatefulWidget.

asynchronous lint dart flutter flutter-navigation

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

颤动删除appbar上的后退按钮

我想知道,如果有人知道有一种方法可以删除appBar当你用到Navigator.pushNamed另一个页面时显示在一个颤动的应用程序中的后退按钮.我不希望它在这个结果页面上的原因是它来自导航,我希望用户改为使用该logout按钮,以便会话重新开始.

navigation flutter

52
推荐指数
9
解决办法
4万
查看次数

颤振:如何防止设备方向改变并强制纵向?

我想阻止我的应用程序更改其方向并强制布局坚持"肖像".

在main.dart中,我把:

void main(){
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown
  ]);
  runApp(new MyApp());
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用Android模拟器旋转按钮时,布局"跟随"新的设备方向......

我该怎么解决这个问题?

谢谢

dart flutter

52
推荐指数
13
解决办法
2万
查看次数

如何在Flutter中创建数字输入字段?

我无法找到一种方法在Flutter中创建一个可以打开数字键盘的输入字段.这可能与Flutter材料小部件有关吗?一些github讨论似乎表明这是一个受支持的功能,但我无法找到任何有关它的文档.

dart flutter

52
推荐指数
14
解决办法
4万
查看次数

Flutter:“RenderFlex 子项具有非零 flex,但传入的高度约束是无界的”

ListView当我FutureBuilder用 a包装时,我想在另一个小部件内部有一个小部件Column,以便有一个简单的Row. 我收到此错误:

The following assertion was thrown during performLayout():
I/flutter (13816): RenderFlex children have non-zero flex but incoming height constraints are unbounded.
I/flutter (13816): When a column is in a parent that does not provide a finite height constraint, for example, if it is
I/flutter (13816): in a vertical scrollable, it will try to shrink-wrap its children along the vertical axis. Setting a
I/flutter (13816): flex on a child (e.g. using Expanded) …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

52
推荐指数
3
解决办法
7万
查看次数

由于它在 Dart 中的类型,该参数的值不能为 'null'

飞镖功能

我有以下 Dart 函数,我现在使用空安全:

void calculate({int factor}) {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

分析器抱怨说:

参数“factor”因其类型而不能具有“null”值,并且未提供非空默认值。

颤振小部件

这也是我StatelessWidget在 Flutter 中的情况:

class Foo extends StatelessWidget {
  const Foo({Key key}): super(key: key);

  // ...
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

参数 'key' 因其类型而不能具有 'null' 值,并且未提供非空默认值。


我该如何解决这个问题?

dart flutter dart-null-safety

52
推荐指数
6
解决办法
5万
查看次数

无法获取“play-services-location/maven-metadata.xml”。从服务器收到状态代码 502:网关错误

我有一个项目,昨天运行得很好,但是今天我发现这个问题:

无法解析配置“:app:debugRuntimeClasspath”的所有文件。无法解析 com.google.android.gms:play-services-location:16.+。必需者:项目:app > 项目:位置 > 无法列出 com.google.android.gms:play-services-location 的版本。> 无法从https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml加载 Maven 元数据。> 无法获取资源“https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml”。> 无法获取“https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml”。从服务器收到状态代码 502:网关错误

实际上我正在使用classpath 'com.android.tools.build:gradle:4.1.0'with distributionUrl=https://services.gradle.org/distributions/gradle-6.5-bin.zip

我已经关注了这个问题 并升级 'com.android.tools.build:gradle:4.1.0'到了 classpath 'com.android.tools.build:gradle:4.2.0'

然后我改成distributionUrl=https://services.gradle.org/distributions/gradle-6.5-bin.zip了,distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip但仍然出现错误。

安卓/build.gradle:

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

gradle-wrapper.properties:

distributionBase=GRADLE_USER_HOME …
Run Code Online (Sandbox Code Playgroud)

android artifactory gradle bintray flutter

52
推荐指数
4
解决办法
5万
查看次数