首页
学习
活动
专区
圈层
工具
发布

为Flutter应用程序添加交互性 顶

管理状态 小部件管理自己的状态 父母管理小部件的状态 混搭方法 其他交互式小部件 标准小部件 材料组件 资源 准备好 如果您已经在Flutter布局中构建布局,请跳到下一节。...实现一个定制的有状态小部件需要创建两个类: 定义小部件的StatefulWidget的子类。 State的一个子类,它包含该小部件的状态并定义小部件的build()方法。...IconButton是一个无状态的小部件,因为我们认为父部件需要知道该按钮是否已被轻敲,所以它可以采取适当的行动。 在以下示例中,TapboxB通过回调将其状态导出到其父项。...当你需要交互性时,最容易使用预制的小部件之一。...这是一个部分列表: 标准小部件: Form FormField 材料组件: Checkbox DropdownButton FlatButton FloatingActionButton IconButton

5.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter 源码系列:DropdownButton 源码浅析

    DropdownButton 构造函数及简单使用 其实关于 DropdownButton 的构造函数和简单使用我在上一篇文章中已经有过讲解, 如有不懂怎么用的,可以看这篇文章:Flutter DropdownButton...下面重点说一下 DropdownButton 是如何实现的。 DropdownButton 的实现 我们需要带着如下几个问题去看源码: 1.DropdownButton 是用什么来实现的?...2.在点击 DropdownButton 的时候发生了什么?3.为什么每次弹出的位置都是我上次选择item的位置? 带着如上问题,我们开始。 DropdownButton 是用什么实现的?..._DropdownRoutePage 如上,_DropdownRoute 返回了 _DropdownRoutePage,那下面就来看一下它, _DropdownRoutePage 是一个无状态的小部件,..._DropdownMenu _DropdownMenu 是一个有状态的小部件,那我们直接看它的 _State.

    1.9K30

    Flutter中构建布局 顶

    对齐小部件 调整小部件 包装小部件 嵌套行和列 常见的布局小部件 标准小部件 材料组件 资源 建立布局 如果您想要了解布局机制的“全貌”,请从Flutter的布局方法开始。...这些小部件安排在ListView中,而不是列中,因为在小设备上运行应用程序时,ListView会自动滚动。...有关更多信息,请参阅此示例的pubspec.yaml文件,或在Flutter中添加资源和图像。 如果您使用Image.network来引用联机图像,则不需要执行此操作。...Dart代码:Flutter Gallery中的contacts_demo.dart Card 材料组件库中的卡片包含相关的信息块,可以由大多数任何小部件构成,但通常与ListTile一起使用。...Card摘要: 实现材料设计卡片 用于呈现相关信息的块 接受单个孩子,但该孩子可以是Row,Column或其他包含子级列表的小部件 显示圆角和阴影 卡片的内容不能滚动 来自材料组件库 卡片示例: ?

    47.8K10

    Flutter 流体滑块

    地址:https://pub.dev/packages/flutter_fluid_slider 简介 流体滑块是一种流体设计滑块,其工作原理与“滑块”材料小部件非常相似。它用于从一系列值中进行选择。...如果未提供,primaryColor将应用祖先主题。 thumbColor: 此属性用于拇指的颜色。、如果未提供,将应用[颜色为白色]。...flutter_spinwheel:^ 0.1.0 导入 import 'package:flutter_spinwheel/flutter_spinwheel.dart'; 执行 flutter...在此滑块中,我们将添加开始意味着小部件将显示为最小标签。我们将显示“money-off”图标。如果未提供,则该min值显示为文本。...Colors.white, ), end: Icon( Icons.attach_money, color: Colors.white, ), ), 我们将添加末尾意味着小部件将显示为最大标签

    14K20

    Flutter常见开发问题

    Flutter 应用程序仍然会比 Android 应用程序大一点,但它相当小,而且 Flutter 团队一直在寻找减少应用程序大小的方法。...您需要记住的一件事是 Flutter 还依赖于 Android 和 iOS 项目,您至少需要熟悉其中的项目结构。如果您想编写任何本机代码,您肯定需要在任一平台或两个平台上的经验。...为什么第一个 Flutter 应用构建需要这么长时间? 首次构建 Flutter 应用程序时,会构建特定于设备的 APK 或 IPA 文件。因此,使用 Gradle 和 XCode 构建文件需要时间。...没有状态的小部件是无状态的。 更详细地说,一个内容可以改变的动态小部件应该是一个有状态的小部件。无状态小部件只能在更改参数时更改内容,因此需要在小部件层次结构中的位置点上方完成。...包含静态内容的屏幕或小部件应该是无状态小部件,但要更改内容,需要有状态。 你如何处理 Flutter 代码中的缩进和结构?

    8.4K30

    Flutter常见开发问题

    Flutter 应用程序仍然会比 Android 应用程序大一点,但它相当小,而且 Flutter 团队一直在寻找减少应用程序大小的方法。...您需要记住的一件事是 Flutter 还依赖于 Android 和 iOS 项目,您至少需要熟悉其中的项目结构。如果您想编写任何本机代码,您肯定需要在任一平台或两个平台上的经验。...为什么第一个 Flutter 应用构建需要这么长时间? 首次构建 Flutter 应用程序时,会构建特定于设备的 APK 或 IPA 文件。因此,使用 Gradle 和 XCode 构建文件需要时间。...没有状态的小部件是无状态的。 更详细地说,一个内容可以改变的动态小部件应该是一个有状态的小部件。无状态小部件只能在更改参数时更改内容,因此需要在小部件层次结构中的位置点上方完成。...包含静态内容的屏幕或小部件应该是无状态小部件,但要更改内容,需要有状态。 你如何处理 Flutter 代码中的缩进和结构?

    8.3K20

    Flutter 中使用Chip 小部件【Flutter专题30】

    作者:坚果 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。...本文是关于 Flutter 中的 Chip 小部件。我们将大致了解小部件的基本原理,然后通过代码来实现它。事不宜迟,让我们开始吧。 概述 典型的chip是一个圆角的小盒子。...img 在 Flutter 中,您可以使用以下构造函数来实现 Chip 小部件: Chip({ Key? key, Widget?...但是,对于大多数应用程序,我们不需要超过一半。 简单示例 这个小例子向您展示了一种同时显示多个chip的简单使用的方法。我们将使用Wrap小部件作为chip列表的父级。...,并经历了不止一个使用该小部件的示例。

    3.3K20

    2022年Flutter真的会一统大前端吗?

    副标题《理性对待Flutter》 作者:坚果 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓...当您的应用程序对应用大小要求很高时 由于flutter不是原生的,它在应用程序之上添加了一些其他库来工作。如果每个字节对您的应用程序都很重要时,您可能需要在原生平台上进行开发。...由于它具有内置的小部件而不是使用原生平台小部件,因此 Flutter 应用程序的最小大小超过 4MB,明显大于原生 Java(539KB)和 Kotlin(550KB)应用程序。...Flutter可以做网站吗|Flutter Web劝退指南|从入门到放弃只需要几分钟 平台特定的外观和设计 Material Widgets 和 Cupertino 小部件分别是 Android 和 iOS...在创建 Flutter 应用程序时,您可以同时使用这两个小部件,但是当我们为 iOS 构建使用 Material 小部件时,该应用程序缺乏原生的外观和感觉。

    2.7K20

    记住,永远都不要在 Flutter 中使用全局变量

    由于全局变量创建了“面条”代码,因此需要大量的规范来约束它们。但是,有些开发人员会使用全局变量,因为他们在一个小团队中,并且在某些情况下不利于更改。...但是,无论应用程序的大小如何,当需要维护代码时,全局变量都会带来挑战。如果有必要使用全局变量,至少使它们不可变。...使用以下代码片段添加和使用 Provider 包插件: dependencies: flutter: sdk: flutter provider: ^3.1.0 Provider 程序包还允许你与多个类共享小部件状态...要在 Flutter 应用程序启动中开始使用 GetX,请将 get 添加到你的 pubspec.yaml 文件中: dependencies: get: 接下来,导入使用 GetX 库函数和组件时需要的...SetState 方法 之前,我们只介绍了管理状态的 Flutter 包和库。 当你的小部件更改数据值时,可以调用一个名为 setState 的方法。它将导致 UI 根据新状态发生变化。

    4.6K30

    【译】Flutter架构综述

    Composition 小部件通常由许多其他小的、单一用途的小部件组成,这些小部件组合起来可以产生强大的效果。 在可能的情况下,设计概念的数量保持在最低限度,同时允许总词汇量很大。...这些布局部件没有自己的视觉表示。相反,它们的唯一目的是控制另一个部件的布局的某些方面。Flutter还包括利用这种组合方法的实用工具部件。...因此,第三种小组件类型 InheritedWidget 提供了一种从共享祖先中抓取数据的简单方法。...相比之下,Flutter最大限度地减少了这些抽象,绕过系统UI小部件库而使用自己的小部件集。绘制Flutter视觉效果的Dart代码被编译成本地代码,使用Skia进行渲染。...通过只走过发生变化的widget,Flutter可以只重建元素树中需要重新配置的部分。 Layout and rendering 这将是一个很少见的只画一个小部件的应用。

    6.6K10

    Flutter 的状态管理方案:setState、BLoC、ValueNotifier、Provider

    主要导航 登录页面的主要导航是通过一个小部件实现的,该小部件使用 Drawer 菜单在不同选项中进行选择。...身份验证状态由一个祖先 widget 处理,该 widget 使用 onAuthStateChanged 来决定展示哪个页面。我在前一篇文章中介绍了这一点。...如下是他们的比较方式: setState ↔︎ 最精简的代码 BLoC ↔︎ 最多的代码 ValueNotifier ↔︎ 中等水平 所以 setState 方案最适合这个例子,因为我们需要处理单个小部件的各自的状态...在构建自己的应用程序时,你可以根据具体情况来评估哪个方案更合适 小彩蛋:实现 Drawer 菜单 跟踪当前选择的选项也是一个状态管理问题: 我首先在自定义 Drawer 菜单中使用本地状态变量和 setState...这样,即使删除使用它的小部件,状态也会被保留。 ValueNotifier 比 setState 需要更多的代码。但它可以用来记住状态,通过在 widget 树中放置适当的 Provider。

    5.8K00

    【Flutter 专题】104 图解自定义 ACEDropdownButton 下拉框

    和尚之前尝试过 Flutter 自带的 DropdownButton 下拉框,简单方便;但仅单纯的原生效果不足以满足各类个性化设计;于是和尚以 DropdownButton 为基础,调整部分源码...按钮,默认在按钮顶部或底部展示; 下拉框展示效果调整为默认由上而下; 对于 DropdownButton 整体的功能是非常完整的,包括路由管理,已经动画效果等;和尚仅站在巨人的肩膀上进行一点小扩展...DropdownButton 源码 DropdownButton 源码整合在一个文件中,文件中有很多私有类,不会影响其它组件; 以和尚的理解,整个下拉框包括三个核心组件,分别是 DropdownButton...同时还起到了衔接 _DropdownMenu 展示作用; 在 _DropdownMenuRouteLayout 中还有一点需要注意,通过计算 Menu 最大高度与屏幕差距,设置 Menu...避免遮挡 和尚选择自定义 ACEDropdownButton 下拉框最重要的原因是,Flutter 自带的 DropdownButton 在下拉框展示时会默认遮挡按钮,和尚预期的效果是: 若按钮下部分屏幕空间足够展示所有下拉

    2.3K20
    领券