编程面试题

  • 将数据传递到有状态的小部件

    不要将参数传递给State使用它的构造函数。您只能使用来访问它们this.widget.myField。 不仅编辑构造函数需要大量的手工工作;它没有带来任何东西。没有理由重复的所有字段Widget。 编辑: 这是一个例子: class ServerI

  • 检查Flutter应用程序上是否有Internet连接可用

    该连接插件的状态在其文档是否有网络连接,但不是如果网络连接到互联网,它仅提供信息 请注意,在Android上,这不保证可以连接到Internet。例如,该应用程序可能具有wifi访问权限,但可能是VPN或无法访问的酒店WiFi。 bl

  • 如何获得小部件的高度?

    要获取屏幕上小部件的大小位置,可以使用GlobalKey使其获取BuildContext然后找到该RenderBox特定小部件的,其中将包含其全局位置和渲染的大小。 只需注意一件事:如果未呈现小部件,则该上下文可能不存在。ListView仅当窗口小部件可能可见时才渲染它们,这可能会导致问题。 另一个问题是,

  • 向Flutter应用添加启动画面

    我想在Flutter中更详细地介绍启动屏幕的实际方法。 我跟踪了一下这里的痕迹,发现Flutter中的“启动画面”看起来还不错。 也许大多数开发人员(像我一样)都认为Flutter默认没有Splash屏幕,因此他们需要为此做些事情。有一个启动屏幕,但背景为白色,没有人能理解默认情况下已经存在

  • 找不到插件项目:firebase_core_web

    在中androidappbuild.gradle,更新以下内容: android { ... defaultConfig { ... minSdkVersion 16 } } 变成: android { ... defaul

  • 无状态窗口小部件类中的键是什么?

    TLDR:所有小部件都应有一个Key keyas 可选 参数或其构造函数。 Key是flutter引擎在识别列表中的哪个小部件已更改的步骤中使用的东西。 当您具有可能会被删除插入 的相同类型 的小部件 列表 (Column,Rowcod

  • 如何在Flutter中使用Google API?

    这对我有用: 使用package登录,google_sign_in然后从中获取auth标头: import 'package:google_sign_ingoogle_sign_in.dart' show GoogleSignIn, GoogleSignInAccount; import 'package:googleapispeoplev1.dart'

  • 创建可重用窗口小部件的函数和类之间有什么区别?

    TL; DR:相对于函数,更喜欢使用类来制作 可重用的 小部件树。 编辑 :弥补一些误解:这不是引起问题的函数,而是解决一些问题的类。 如果一个函数可以做同样的事情,Flutter将不会有a href="https:docs.flutter.ioflutterwidgetsStatelessWidget- class.

  • 如何处理不需要的小部件构建?

    该 构建 方法的设计是这样一种方式,它应该是 纯无副作用 。这是因为许多外部因素都可以触发新的小部件构建,例如: 路线弹出推入 屏幕尺寸调整,通常是由于键盘外观或方向改变 父小部件重新创建了它的子级 小部件所依赖的InheritedWidget(Class.ofcontextcod

  • 如何访问showModalBottomSheet中的Provided(Provider.of())值?

    InheritedWidgets以及Providers的范围都限于小部件树。无法在该树之外访问它们。 问题是,使用showDialog类似的功能,对话框位于不同的小部件树中-可能无法访问所需的提供程序。 因此,有必要在新的窗口小部件树中添加所需的提供程序: void myShowDialog { final myModel = Provider

  • Flutter- ExpansionTile单击可展开和折叠

    您可以使用ExpandablePanelList来执行展开和折叠视图。使用expandingCallback保持活动状态以执行展开或折叠。这是工作示例 class TestExpandableView extends StatefulWidget { @override _TestExpandableViewState createState = _TestExpandableViewStat

  • 如何删除Flutter IconButton大填充?

    并不是说那里有填充物。IconButton是一个Material Design小部件,其遵循以下规范:可轻拍对象的 每 一侧至少 应为48px 。 您可以从任何IDE单击到IconButton实现。 您也可以半琐碎地获取icon_button.dart源代码,并制作不遵循Material Design规范的自己的IconButton,因为 整个文件仅由其他小部件组成,只有200行,大部分

  • 颤振使用什么颜色系统,为什么我们使用“ const Color”而不是“ new Color”

    从Flutter来源 class Color { Construct a color from the lower 32 bits of an [int]. The bits are interpreted as follows: * Bits 24-31 are the alpha value. * Bits 16-23 are the r

  • Flutter:获取FirebaseStorage下载URL和上传状态

    最新版本的插件不允许您再使用task.future,在他们说要使用的文档中,lastSnapshot这对我不起作用。所以,我用了onComplete。这是有效的解决方案: var ref = FirebaseStorage.instance.ref.child"your_path"; var uploadTask = ref

  • 找不到Flutter Firebase.signInWithGoogle方法

    查看firebase_auth github存储库 https:github.comflutterpluginsblobmasterpackagesfirebase_authexamplelibmain.da

  • Flutter:更新列表中的特定索引(Firestore)

    对于所有客户端语言和平台,当前不可能发出单个命令来按索引更新数组项。对此没有特殊的语法。相反,您需要做的是阅读文档,以所需的方式修改字段数组数据,然后将该字段全部更新回文档。如果您希望更新是原子更新,则可以在事务中执行此操作。

  • Flutter应用在启动时会显示白屏几秒钟

    您可以在特定于平台的代码中覆盖此初始屏幕。请参阅此处的示例。

  • 不使用构造函数将StatefulWidget数据传递给State类

    是的,有widget: 从文档: The current configuration.

  • 如何在Flutter中使用十六进制颜色字符串?

    在Flutter中, Color 该类仅接受 整数 作为参数,或者可以使用命名的构造函数a href="https:docs.flutter.ioflutterdart- u

  • 如何覆盖Flutter中的“返回”按钮?

    您可以使用它WillPopScope来实现。 例: import 'dart:async'; import 'package:fluttermaterial.dart'; class HomePage exte

  • Flutter-环绕文字

    在我的一个项目中,我将Text实例包裹在Containers 周围。此特定的代码示例具有两个堆叠的Text对象。 这是一个代码示例。 80% of screen width double c_width = MediaQuery.ofcontext.size.width*0.8; return new Cont

  • Flutter项目和Android X迁移问题

    在创建新项目时,只需遵循@harsh的回答,就可以完成。 但是,当我最近升级现有应用程序以使用新插件时,我也不得不迁移到AndroidX …并且官方说明中的默认步骤不起作用,这是使用Android Studio迁移项目的过程-它说“未找到用法!”。p

  • Flutter的Multidex问题

    您的两个软件包似乎在它们的传递依存关系上意见不一致。一个想要11.6。+,另一个想要一些Play-service依赖性的11. +。由于11.6.2和11.8.0都存在,所以最终将导致冲突。 如果.gradlew androidDependencies在android文件夹中运行,则会列出依赖关系解析的结果,其中包括以下内容: cod

  • Flutter-折叠后的ExpileingTile

    这是一个解决方案。我们只需添加expand,collapse和toggle功能ExpansionTile。 import 'package:fluttermaterial.dart'; import 'package:metameta.dart'; void main { runAppne

  • 扑setState到另一个类?

    您可以使用 回调函数 来实现此目的。请参考下面的代码。 import 'package:fluttermaterial.dart'; class RootPage extends StatefulWidget { @override _RootPageState createState = new _RootPageState; } class _Ro

  • 如何从Flutter中的UploadTaskSnapshot获取完整的downloadUrl?

    旧 ~~~~ final uploadTask = imageStore.putFileimageFile; final url = await uploadTask.future.downloadUrl; 更新 这个答案现在是准确的答案。

  • 如何关闭屏幕键盘?

    注意: 此答案已过时。 您可以通过移开键盘的焦点TextFormField并将其分配给未使用的键盘来关闭键盘FocusNode: FocusScope.ofcontext.requestFocusFocusNode; div

  • 如何从Flutter应用程序打开应用程序?

    我建议您使用url_launcher飞镖包。 这样,您可以使用所有url模式打开(phone,,sms甚至maps根据您的情况)。 为了在Android和iOS中打开Goog​​le Maps,您可以使用Heman

  • 如何构建符合Google Play 64位要求的应用程序?

    EditUpdate: Google已在稳定的渠道中发布了Flutter 1.7.8 + hotfix.3,可轻松构建要发布的应用程序。 现在您有两个选择可以构建: 应用套件(首选) APK 产生应用程式套件 bloc

  • Android Studio不显示Flutter的Logcat

    2020年4月更新: Cuong的答案在Android Studio 3.6及更高版本中更有效 转到设置首选项-语言和框架-颤振-选中或取消选中将运行和调试控制台替换为实验性的Flutter日志视图 先前的答案: Flutter 使用“运行”选项卡在Android Studio中显

  • 颤振ListView滚动到索引不可用

    不幸的是,ListView没有对scrollToIndex()函数的内置方法。您必须开发自己的方法来测量animateTo或的元素偏移量jumpTo 但是还有另一种ListView确实支持scrollToIndex( 如Slashbin所述 ): a href="https:pub

  • 如何从Flutter中的其他StatefulWidget设置/更新StatefulWidget的状态?

    OLD :创建_MyHomePageState的全局实例。在_SubState中将此实例用作_myHomePageState.setState 新 :无需创建全局实例。而是将父实例传递给子窗口小部件 按颤振0.8.2更新的代码 : import 'package:flutter

  • 颤动倒数计时器

    Here is an example using Timer.periodic : Countdown starts from 10 to 0 on button click : p

  • 在Flutter中完成“ build”功能时是否有任何回调告诉我?

    一般解决方案 只是为了澄清问题,我没想到这个问题会引起如此多的关注。因此,我只针对这个非常特殊的情况回答。 正如在另一个答案中解释的那样,WidgetsBinding提供了一种添加 一次性 框架 回调的方法 。 WidgetsBinding.instance.add

  • 当我选择一个Textfield时,键盘会移到它上面

    组成动画并在TextField 获得焦点时向上移动TextField容器。 有关合成动画的信息,请参阅: Dart Flutter 框架中的合成动画和 链接动画 使用Flutter的FocusNode检测TextField的焦点 编辑: 在这里,我编写了一个示例,该示例完全满足您的要求: import 'pac

  • 无需sdkmanager即可安装Android Studio

    更新1(2020-02-29) 似乎最新版本的Android SDK将“ Android SDK工具 ”包重命名为“ Android-SDK命令行工具 ”。但是很遗憾,Flutter SDK(v1.12.13+hotfix.8)的当前稳定版本与此更改不兼容,并且一直显示错误消息。 解决方法: 就像@Mark Ebden建议的那样,您只需 在SDK工具页面上取消选中隐藏过

  • 如何使整个屏幕对话框颤抖?

    您可以使用Navigator推送半透明的内容ModalRoute: import 'package:fluttermaterial.dart'; class TutorialOverlay extends

  • 如何在Flutter中为小部件添加边框?

    您可以将的TextFieldas 添加child到Container具有 BoxDecorationwith border属性的: new Container margin: const EdgeInsets.all15.0, padding: const EdgeInsets.all3.0, decoration: BoxDecoration border: Bo

  • 将数据发送到Flutter中的父窗口小部件

    在您的示例中,进行了一些假设。我将尝试一一删除。 您abc从父级传给了子级,然后按了按钮就改变了子级值。因为原始类型在dart中 按值传递 ,所以abcin child的值更改不会更改parent的值abc。请参考以下代码段。 voi

  • 我什么时候应该使用FutureBuilder?

    FutureBuilder 删除 一些 样板代码 。 假设您要fetch data from backend启动页面并显示加载程序,直到数据到来。 ListBuilder的任务: 有两个状态变量1. dataFr