iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >flutter中的布局和响应式app方法示例
  • 692
分享到

flutter中的布局和响应式app方法示例

flutter布局响应式appflutter 响应式app 2022-12-08 20:12:48 692人浏览 独家记忆
摘要

目录Flutter中的布局(使用)放置一个组件app 本身就是个组件Material apps 和 Non-Material apps自适应和响应式flutter实现响应式的方法小结

flutter中的布局

flutter布局机制的核心是组件。在flutter中,几乎所有的东西都是组件,布局模型也不例外。图片,Icon, 文本等等,我们在flutter客户端中看到的所有内容都是组件。我们看不到的东西,比如:rows,columns,等等等等也都是组件。

我们将简单的组件组合在一起,构成复杂的组件。比如我们经常写的导航栏:

他的布局可能是这样的:

用树形图来表示是这样的:

图中的大部分内容应该跟我们想象中的差不了多少,可能会有些人对Containter有些疑惑,Containter其实是一个容器组件,我们可以用它来控制一些子组件的展示,比如我们想要添加padding,margin,border,background- color等属性时,我们就可以用它来控制,用法和div基本一样。

(使用)放置一个组件

在flutter中如何使用组件呢?很简单。

比如,我想要一个居中的效果,那么我就使用Center组件;想要水平布局,我就使用row组件,想要垂直效果,就使用column组件。想要一个列表,那就listview组件,如此而已。

比如:创建一个文本。

Text('Hello World'),

比如:创建一个图片。

Image.asset(
  'images/lake.jpg',
  fit: BoxFit.cover,
)

比如:创建一个图标。

Icon(
  Icons.star,
  color: Colors.red[500],
)

app 本身就是个组件

试想一下我们平时搭建的Vue或者React项目,其实他们本身就都是一个组件而已。

从bootstrap开始,或者讲的更透彻一些,从我们执行:

let app = new vue()  // let app =  createapp()
app.mount('#app', true)

mount执行完成后,全局项目的大组件就已经跑起来了。

然后我们又在各个模块中创建了页面,拆分了模块...

flutter也一样,如果你仔细对比一下vue,或者react项目的入口文件和flutter项目入口文件的区别:

import 'package:flutter/material.dart';
import 'mine.dart';
import './yours.dart';
void main() {
  runApp(const MyApp());
}
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
      routes: {'/mine': (context) => Mine(), '/yours': (context) => Yours()},
    );
  }
}

发现了吗,其实是一样的套路,实例化了一个全局的app,一个全局的组件。

Material apps 和 Non-Material apps

对于Material app,我们可以使用app本身自带的一些组件,比如:Scaffold提供了默认的顶部导航,底部导航,抽屉等组件,开发起来非常方便。比如:

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter layout demo',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Flutter layout demo'),
        ),
        body: const Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

而Non-Material apps 则没有提供这些组件,我们想要实现那些东西,都需要我们自己动手去封装。比如:

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: const BoxDecoration(color: Colors.white),
      child: const Center(
        child: Text(
          'Hello World',
          textDirection: TextDirection.ltr,
          style: TextStyle(
            fontSize: 32,
            color: Colors.black87,
          ),
        ),
      ),
    );
  }
}

自适应和响应式

flutter的一个主要目的是为我们提供一个组件库,让我们可以很快的进行开发,并且开发出来的应用可以运行在多个平台上。这意味着我们的应用程序在不同尺寸的屏幕上,手机,手表,或者显示器都有可能。

所以,我们的应用应该是响应式的,或者叫自适应。

自适应和响应式听起来很相似,但是它们是一回事儿吗?也许未必如此。

自适应和响应式其实是两个维度的东西。我们可以开发一个没有响应式的自适应程序,也可以开发一个没有自适应的响应式程序。也许有些人会很疑惑,没有响应式的自适应程序,比如我要兼容三个设备,那么我写三套代码去兼容它们,这就是非响应式的自适应程序。

当然,我们也可以开发出既是自适应,又是响应式的程序。

什么是响应式?通常情况下,自适应的应用程序的布局可以根据屏幕大小进行调整。比如用户调整了窗口大小,旋转了设备方向,那么就会重新进行布局。这一点在应用运行在不同的设备上时,显得尤为重要。

什么是自适应?应用程序在不同的设备上运行,我们需要处理鼠标,键盘输入以及触摸输入等功能,需要我们对程序的视觉效果,组件的工作方式,api在各个平台上的兼容性有一定的了解。

如此看来,响应式似乎侧重于布局,而自适应则既要考虑布局,又要兼顾功能。

flutter实现响应式的方法

使用flutter我们可以非常方便的开发出响应式或自适应的app。有两种可行的方案:

一种是利用LayoutBuilder这个类。通过它的builder属性,我们可以获取到BoxConstraints对象,检查容器的约束性来决定展示什么。比如:如果我们的maxWidth大于我们的屏幕宽度的临界点,就返回一个包含列表的Scaffold对象。如果小于屏幕的临界点,就基别的因素进行布局。

另外一种是使用媒体查询技术MediaQuery.of()。它可以获取我们当前应用的size,orientation等信息,我们可以根据获取的信息作出一些有利于我们应用展示效果的决策。

其他的可以用来创建响应式ui的组件有,比如:

  • AspectRatio
  • CustomSingleChildLayout
  • CustomMultiChildLayout
  • FittedBox
  • FractionallySizedBox
  • LayoutBuilder
  • MediaQuery
  • MediaQueryData
  • OrientationBuilder

这些都可以用来开发响应式的app应用。

小结

本文简单介绍一下flutter如何开发响应式app,更多关于flutter布局响应式app的资料请关注编程网其它相关文章!

--结束END--

本文标题: flutter中的布局和响应式app方法示例

本文链接: https://www.lsjlt.com/news/174432.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • flutter中的布局和响应式app方法示例
    目录flutter中的布局(使用)放置一个组件app 本身就是个组件Material apps 和 Non-Material apps自适应和响应式flutter实现响应式的方法小结...
    99+
    2022-12-08
    flutter布局响应式app flutter 响应式app
  • web开发中响应式布局和自适应布局的示例分析
    这篇文章给大家分享的是有关web开发中响应式布局和自适应布局的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   1. 设置 Meta 标签   大多数移动浏览器将H...
    99+
    2024-04-02
  • html中响应式布局的示例分析
    这篇文章主要为大家展示了“html中响应式布局的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html中响应式布局的示例分析”这篇文章吧。 响应式布局...
    99+
    2024-04-02
  • css3中media响应式布局的示例分析
    这篇文章主要介绍了css3中media响应式布局的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。响应式布局可以为不同终端的用户提供更...
    99+
    2024-04-02
  • flutter中使用流式布局示例详解
    目录简介Flow和FlowDelegateFlow的应用总结简介 我们在开发web应用的时候,有时候为了适应浏览器大小的调整,需要动态对页面的组件进行位置的调整。这时候就会用到flo...
    99+
    2024-04-02
  • HTML5响应式布局的实现方法和技巧
    如何实现HTML5响应式布局的步骤与技巧 随着移动设备的普及,网页的响应式布局成为了开发者们必备的技能。HTML5的出现给了开发者更多的选择和灵活性,使得实现响应式布局变得更加容易。本文将介绍一些实现HTML5响应式布局的步骤与...
    99+
    2024-01-29
    html 响应式布局 步骤与技巧
  • web开发之响应式布局的示例分析
    这篇文章将为大家详细讲解有关web开发之响应式布局的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言响应式Web设计可以让一个网站同时适配多种设备和多个屏幕...
    99+
    2024-04-02
  • 揭示响应式布局的关键元素
    探索响应式布局的核心要素,需要具体代码示例 随着移动设备的普及,响应式设计布局已成为现代网页设计的重要经验。响应式布局的核心要素是能够根据设备屏幕的尺寸和分辨率来自适应地调整网页内容的...
    99+
    2024-02-26
    弹性布局 网页布局
  • CSS布局教程:实现两栏响应式布局的最佳方法
    简介:在网页设计中,响应式布局是一种非常重要的技术,它能使网页根据用户设备的屏幕大小和分辨率自动调整布局,提供更好的用户体验。在本教程中,我们将介绍如何使用CSS来实现一个简单的两栏响应式布局,并提供具体的代码示例。一、HTML结构:首先,...
    99+
    2023-10-21
    响应式布局 CSS布局 两栏布局
  • CSS布局教程:实现三栏响应式布局的最佳方法
    前言:在网页设计中,合理的布局是非常重要的。而响应式布局则是指网页能够根据不同设备的屏幕尺寸自动调整和适应布局,以实现更好的用户体验。本文将介绍一种实现三栏响应式布局的最佳方法,并提供具体的代码示例。一、HTML结构首先,我们需要确定HTM...
    99+
    2023-10-21
    响应式布局 CSS布局方法 三栏布局
  • 实现一个响应式布局的原理与方法
    页面响应式布局的原理与实现方法 随着移动设备的普及和互联网的快速发展,越来越多的用户开始使用手机、平板等移动设备浏览网页。而传统的固定布局往往无法适应不同屏幕尺寸的设备,导致用户体验不佳。为了解决这个问题,响应式布局应运而生。 ...
    99+
    2024-01-29
    原理 实现方法 响应式布局
  • 详解如何在Flutter中用小部件创建响应式布局
    目录前提条件使用容器的问题展开式小组件的介绍灵活小组件的介绍设置一个示例应用程序代码执行扩展的小部件例子灵活部件的例子扩大的和灵活的部件之间的区别总结构建响应式屏幕布局意味着编写一段...
    99+
    2024-04-02
  • 响应式设计中流行的布局方式有哪些?
    响应式设计是一种在不同设备上实现一致的用户体验的设计方法。随着移动设备的普及,越来越多的人使用不同尺寸的屏幕访问网页,因此响应式设计已经成为现代网页设计的重要组成部分。在实践中,设计师...
    99+
    2024-02-22
  • 达到高效的响应式布局的方法有哪些?
    如何实现高效的响应式布局 随着移动互联网的发展,越来越多的人通过手机、平板等设备上网,而不再局限于传统的电脑。因此,对于网页设计师来说,响应式布局已经成为一项必备的技能。而如何实现高效的响应式布局,就需要我们掌握一些关键的技巧和...
    99+
    2024-01-29
    viewport FLEXBOX
  • 解析响应式布局的作用和优势
    响应式布局的作用及优势解析 随着移动互联网的快速发展,人们对网页的浏览方式也发生了变化。传统的固定布局在不同设备上可能出现显示不完整、排版混乱等问题,影响用户体验。而响应式布局则成为了解决这一问题的最佳方案。本文将从响应式布局的...
    99+
    2024-01-29
    手机
  • 响应式布局网站的优势和挑战
    随着移动设备的普及和互联网的快速发展,越来越多的用户选择通过手机和平板电脑访问网站。这就带来了响应式布局网站的发展和应用。响应式布局是一种灵活的设计方法,可以根据用户的设备和屏幕尺寸,...
    99+
    2024-02-23
    挑战 优势 响应式布局 搜索引擎优化
  • 探究响应式网页设计中的不同布局方式
    在当今数字化时代,响应式网页设计已经成为了网页设计的基本要求。响应式设计能够使网页在不同尺寸的屏幕上展现出最佳的视觉效果和用户体验,为用户提供了更好的浏览体验。而在响应式网页设计中,不...
    99+
    2024-02-22
    响应式布局 弹性盒子 网格系统 弹性布局
  • 理解响应式布局的重要性和原理
    了解响应式布局的重要性及原理 随着移动设备的普及和互联网的快速发展,人们越来越多地使用手机、平板电脑等移动设备来浏览网页和使用应用程序。传统的固定布局已不能满足人们在不同设备上的浏览需求,因此响应式布局逐渐成为了互联网设计和开发...
    99+
    2024-01-29
    原理 响应式布局 重要性
  • 使用PHP和Bootstrap构建响应式布局的Web应用
    随着移动互联网的普及,越来越多的用户开始在移动设备上访问Web应用。这也带来了一个新的挑战,即如何为不同尺寸和分辨率的屏幕提供良好的用户体验。为了解决这个问题,响应式布局应运而生。本文将介绍如何使用PHP和Bootstrap构建响应式布局的...
    99+
    2023-05-23
    Bootstrap PHP 响应式布局
  • 详解Css Flex 弹性布局在响应式图片展示中的应用
    过去,我们在网页上展示图片时,经常遇到的一个问题是如何使图片在不同屏幕尺寸下保持良好的显示效果。传统的CSS布局方法无法很好地解决这个问题,而CSS Flex弹性布局则是一种有效的解决方案。本文将详细介绍CSS Flex弹性布局在响应式图片...
    99+
    2023-10-21
    响应式 图片展示 弹性布局
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作