视频地址: https://www.bilibili.com/video/av39709290?p=2 博客地址: https://jspang.com/post/flutterDemo.html#toc-4df 新建pages页面里面新建:home_screen.dart 内容比较简单 分别复制三个dart组件出来.然后分别改改名字即可, 里面的内容分别做下修改 引用四个页面: 动态的组件就是要维护他的state 重写初始化状态的方法:initState方法 重写之前 现在上面声明 两个变量…
20个Flutter实例视频教程-第10节: 一个不简单的搜索条-1 视频地址: https://www.bilibili.com/video/av39709290/?p=10 博客地址: https://jspang.com/post/flutterDemo.html#toc-b14 创建demo06: search_bar_demo.dart 我们搜索的东西一般和后台是有交互的,我们需要一个文件来模拟后台请求数据:asset.dart 这是一个动态的widget: 搜索框放在我们导航条的右边…
20个Flutter实例视频教程-第13节: 展开闭合案例 视频地址: https://www.bilibili.com/video/av39709290/?p=13 博客地址: https://jspang.com/post/flutterDemo.html#toc-f0f 创建demo08 main.dart expansion_tile.dart 效果预览 代码 import 'package:flutter/material.dart'; import 'expansion_tile.d…
第03节: 不规则底部工具栏制作-1 博客地址: https://jspang.com/post/flutterDemo.html#toc-973 视频地址: https://www.bilibili.com/video/av39709290?p=3 视频里面的评论:动态组件就是可以setState的组件 flutter create demo02的项目 这里是定义主题的地方:自定义主题使用theme然后里面使用:primarySwatch,后面主要跟的就是我们的颜色 引入:bottom_app…
视屏地址: https://www.bilibili.com/video/av39709290/?p=5 博客地址: https://jspang.com/post/flutterDemo.html#toc-246 创建新项目: 把上节课的Main.dart文件复制过来改改. 创建pages.dart stless快速生成我们的FirstPage页面.静态的widget 然后我们去创建的SecondPage页面 stlss快速生成:SecondPage 这样AppBar就设置完成了. 下面设置我…
视频地址: https://www.bilibili.com/video/av39709290/?p=4 博客地址: https://jspang.com/post/flutterDemo.html#toc-7d1 学习如果使用一个动态的widget代替之前写的那几个静态的widget 新建文件:each_view.dart 快捷键:stful生成动态的widget 定义内部使用的变量:以下划线开头的 String _title;这个title是从上一个页面传过来的我们在构造函数内初始化一下 下…
博客地址: https://jspang.com/post/flutterDemo.html#toc-94f 视频地址: https://jspang.com/post/flutterDemo.html#toc-94f 缩放的效果: import 'package:flutter/material.dart'; class CustomeRoute extends PageRouteBuilder{ final Widget widget; CustomeRoute(this.widget) :…
视频地址: https://www.bilibili.com/video/av39709290/?p=7 博客地址: https://jspang.com/post/flutterDemo.html#toc-65a 创建demo04 flutter从1.0 开始就鼓励大家使用类的不用再写前面的 New关键字了 例如原来new MyAp();现在直接 MyApp();就可以了 新建 frosted_glass_demo.dart stack是层叠组件把我们的图片毛玻璃都重叠在一起 我们使用的网络图…
博客地址: https://jspang.com/post/flutterDemo.html#toc-bb9 视频地址: https://www.bilibili.com/video/av39709290/?p=8 创建项目demo05 keepAliveDemo是一个自定义组件 keepAliveDemo这个组件必须是个动态组件,因为他来回的切换还要变换里面的效果 sfu快捷键快速生成 第一个知识点就是with. 这里我们继承自State,如果我们还要继承其他的类呢?这里就用到了with.表示…
视频地址:https://www.bilibili.com/video/av39709290/?p=9 博客地址:https://jspang.com/post/flutterDemo.html#toc-e3a 新建keep_alive_demo.dart. 里面新建类 MyHomePage是一个动态的widget with只能引入混入的mixin的.AutomaticKeepAliveClientMixin 声明一个计数器:并重写wantKeepAlive 再声明一个内部的方法.点击按钮增加我…
博客地址: https://jspang.com/post/flutterDemo.html#toc-1b4 视频地址:https://www.bilibili.com/video/av39709290/?p=11 定义类searchBarDelegate 继承SearhDelegate 并复写里面的方法 需要复写里面的四个方法.我们定义类:searchBarDelegate 重写第一个方法 buildActions 重写的第一个方法:buildActions 就是搜索的时候右边的差号.里面接收…
视频地址: https://www.bilibili.com/video/av39709290/?p=12 博客地址: https://jspang.com/post/flutterDemo.html#toc-b97 要实现的效果; 这里主要是用我们的流式布局 顺序排,一般到头了 会顺序往下排列. 还会学到 媒体查询.手势操作 先写main.dart 创建warp_demo.dart 这个组件肯定是动态的. 那些加号都是数组生成的,所以这里声明一个数组.数组里面添加按钮,添加按钮我们需要单独写一…
博客地址; https://jspang.com/post/flutterDemo.html#toc-5b0 视频地址: https://www.bilibili.com/video/av39709290/?p=14 新建类: expansion_panel_list.dart 这是一个动态的widget 然后新建类,开和 和 打开,我们要做一个控制这个的类 声明两个List.一个int类型的List,为了生成数组 第二个数组是ExpandStateBean的List List<int> mL…
博客地址: https://jspang.com/post/flutterDemo.html#toc-61b 视频地址: https://www.bilibili.com/video/av39709290/?p=15…
03.底部导航栏制作 material是谷歌退出的 还有另外的一种:cupertino是IOS的风格 我们底部的导航栏,静态的widget是不合适的,这垃圾我们用到动态的widget 这重新改成动态的组件 依然叫做IndexPage 声明一个List来放我们底栏的图标啊 文件啊,List我们希望是不变的,是个常量 所以我们用Final来定义 我们再复制三个BottomNavigationBarItem元素 最终代码: import 'package:flutter/material.dart';…
1.cupertino_IOS风格介绍 在Flutter里是有两种内置风格的: material风格: Material Design 是由 Google 推出的全新设计语言,这种设计语言是为手机.平板电脑.台式机和其他平台提供一致,更广泛的外观和感觉.我喜欢称它为纸墨设计.Material Design 风格是一种非常有质感的设计风格,并会提供一些默认的交互动画. cupertino风格:即 IOS 风格组件,它重现了很多经典的有 IOS 特性的交互和界面风格,让适用于 IOS 的人感觉亲切和…
视频地址: https://www.bilibili.com/video/av39709290?zw 博客地址: https://jspang.com/post/flutterDemo.html#toc-ff4 flutter create demo01:命令行来创建项目,这里我就不创建,直接用我原来的代码 D:\Flutter\Demo\demo03 bottom_navigation_widget.dart 新建:bottom_navigation_widget.dart main里面引用这…
先来看看制作效果: 前置知识--StatefulWidget  StatefulWidget具有可变状态(state)的窗口组件(widget).使用时要根据变化状态,调整State值, 能够快速初始化,在VSCode中直接使用快捷方式生成代码(直接在VSCode中输入stful后回车自动生成结构),如下: class name extends StatefulWidget { _nameState createState() => _nameState(); } class _nameStat…
现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其中各个类的作用以及资源文件就不详细解释了,还有资源图片(在该Demo中借用了其它应用程序的资源图片)也不提供了,大家可以自行更换自己需要的资源图片.直接上各个布局文件或各个类的代码: [1]  res/layout目录下的 maintabs.xml 源码: <?xml version="1.0…
现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其中各个类的作用以及资源文件就不详细解释了,还有资源图片(在该Demo中借用了其它应用程序的资源图片)也不提供了,大家可以自行更换自己需要的资源图片.直接上各个布局文件或各个类的代码: [1]  res/layout目录下的 maintabs.xml 源码: <?xml version="1.0…
关于界面切换以及底栏的实现可参考之前写的一篇文章:Flutter实 ViewPager.bottomNavigationBar界面切换 1.新建4个基本dart文件 在pages目录下,我们新建下面四个dart文件. home_page.dart :商城首页UI页面,首页相关的UI我们都会放到这个文件里. category_page.dart: 商城分类UI页面,这个页面会有复杂的动态组件切换. cart_page.dart:商城购物车UI页面,这个页面会包括购物车的全套功能. member_p…
如果你用过BottomNavigationBar.TabBar.还有Drawer,你就会发现,在切换页面之后,原来的页面状态就会丢失. 要是上一页有一个数据列表,很多数据,你滚动到了下头,切换页面后,想再看一下下头的数据,但是Flutter给你重回页面了... 这谁能顶得住啊. 看了一下解释,原来Flutter中为了节约内存不会保存widget的状态,widget都是临时变量. 不过还是有很多办法解决的,网上传言用 AutomaticKeepAliveClientMixin 配合 @overri…
之前写过的一篇文章介绍了 Flutter - 创建横跨所有页面的侧滑菜单, 这次就一起来学习一下底部导航栏. 底部导航栏在ios平台上非常常见,app store就是这样的风格.还有就是大家最常用的微信,也是底部导航的. 既然这么常见的功能,在Flutter上面也是必不可少的啦.谷歌已经做好了Widget,下面我们就来看一下如何创建一个底部导航栏. 1. 准备工作 首先创建一个空的Flutter 项目,并且按照图示结构.创建一个pages文件夹,并新建四个page文件. 这四个pages是用到导…
BottomNavigationBar常用的属性: 属性名 说明 items List<BottomNavigationBarItem> 底部导航条按钮集合 iconSize icon currentIndex 默认选中第几个 onTap 选中变化回调函数 fixedColor 选中的颜色 type BottomNavigationBarType.fixed BottomNavigationBarType.shifting import 'package:flutter/material.da…
实现一个底部导航栏,包含3到4个功能标签,点击对应的导航标签可以切换到对应的页面内容,并且页面抬头显示的内容也会跟着改变. 实际上由于手机屏幕大小的限制,底部导航栏的功能标签一般在3到5个左右,如果太多,会比较拥挤,影响用户体验,实际上目前市面上大多数APP的底部导航标签都控制在4到5个左右.既美观.又不会让用户觉得功能繁杂.这个功能的实现需要用到flutter里的BottonNavigationBar这个控件. 属性名 类型 说明 currentIndex int 当前索引,用来切换按钮控制…
一,概述 BottomNavigationBar即是底部导航栏控件,显示在页面底部的设计控件,用于在试图切换,底部导航栏包含多个标签.图标或者两者搭配的形式,简而言之提供了顶级视图之间的快速导航. 二,Bar关键元素 BottomNavigationBar BottomNavigationBar 是属于 Scaffold 中的一个位于底部的控件.通常和 BottomNavigationBarItem 配合使用. BottomNavigationBar构造方法 BottomNavigationBa…
import 'package:flutter/material.dart'; import './pages/home_page.dart'; import './pages/book_page.dart'; import 'package:bottom_nav_bar_test/pages/movie_page.dart'; import 'package:bottom_nav_bar_test/pages/music_page.dart'; void main() => runApp(My…
import 'package:flutter/material.dart'; import 'package:flutter_app/bottom_navigation_widget.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutt…
1.要实现的效果图以及工程目录结构: 先看看效果图吧: 接着看看我们的工程的目录结构: 2.实现流程: Step 1:写下底部选项的一些资源文件 我们从图上可以看到,我们底部的每一项点击的时候都有不同的效果是吧! 我们是通过是否selected来判定的!我们要写的资源文件有:首先是图片,然后是文字,接着是背景! 图片Drawable资源:tab_menu_channel.xml <?xml version="1.0" encoding="utf-8"?>…
说明: 实现效果: 1- 用ViewPager实现Fragmen之间的切换 2- 底部用RadioGroup实现,更方便的实现图片和字体颜色的改变,更方便的通过RadioButton的点击事件来控制页面切换 原文地址:http://www.runoob.com/w3cnote/android-tutorial-fragment-demo4.html…