flutter 底部按钮切换页面
界面如图:


我们就从上节里面的app.dartt修改
目录:lib

lib/story

其它两个目录一样。
图片配置一下

app.dart
import 'package:flutter/material.dart';
import 'cast/cast.dart';
import 'story/story.dart';
import 'derivative/derivative.dart';
void main() => runApp(App()); class App extends StatefulWidget {
@override
_MyApp createState() => new _MyApp();
} class _MyApp extends State<App> {
// 当前选中页索引
var _currentIndex = ;
currentPage() {
switch (_currentIndex) {
case :
return new Story();
case :
return new CastApp();
case :
return new Derivative();
default:
}
} @override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
// 底部导航按钮
bottomNavigationBar: new BottomNavigationBar(
// 通过fixedColor设置选中的item的颜色
type: BottomNavigationBarType.fixed,
// 当前页面索引
currentIndex: _currentIndex,
// 按下后设置当前页面索引
onTap: ((index){
setState(() {
_currentIndex = index;
});
}),
// 底部导航按钮选项
items: [
new BottomNavigationBarItem(
title:new Text(
'ストーリー',
style: TextStyle(
color: _currentIndex == ? Color(0xFF46c01b) : Color(0xff999999),
),
),
// 判断当前索引做图片切换显示
icon: _currentIndex == ? Image.asset('images/icon/sawako.jpg', width: 32.0, height: 28.0,) : Image.asset('images/icon/sawako.jpg', width: 32.0, height: 28.0,),
// backgroundColor:Colors.yellow[200]
),
new BottomNavigationBarItem(
title: new Text(
'キャラクター',
style: TextStyle(
color: _currentIndex == ? Color(0xFF46c01b) : Color(0xff999999),
),
),
icon: _currentIndex == ? Image.asset('images/icon/flower.png', width: 32.0, height: 28.0,) : Image.asset('images/icon/flower.png', width: 32.0, height: 28.0,)
),
new BottomNavigationBarItem(
title: new Text(
'周辺',
style: TextStyle(
color: _currentIndex == ? Color(0xFF46c01b) : Color(0xff999999),
),
),
icon: _currentIndex == ? Image.asset('images/icon/flower.png', width: 32.0, height: 28.0,) : Image.asset('images/icon/flower.png', width: 32.0, height: 28.0,)
)
],
), body: currentPage(),
);
}
}
lib/story/story.dart
story.dart
import 'package:flutter/material.dart';
void main() => runApp(Story());
class Story extends StatefulWidget {
@override
_Story createState() => new _Story();
}
class _Story extends State<Story> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
body: new Center(
child: new Text(
'Story',
style: TextStyle(color: Colors.amberAccent),
),
),
);
}
}
其它两个文件差不多一样,因为只显示了一个单词而已。
flutter 底部按钮切换页面的更多相关文章
- Android控件Gridview实现仿支付宝首页,Fragment底部按钮切换和登录圆形头像
此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...
- react native 底部按钮切换
在react native 中底部按钮的切换 主要的是运用的是<TabBarNavigator/>这个组件,具体的代码实现如下: render() { return ( <T ...
- Flutter实现TabBarView切换页面时每个页面只initState一次
在 TabBarView 组件中切换页面时,子页面每次均会重新 initState 一次,导致每次都切换页面均会重绘,如下图 如果需要只在第一次进页面 initState 一次,后面再进入 ...
- 09 Flutter底部Tab切换保持页面状态的几种方法
IndexedStack:保此所有页面的状态: AutomaticKeepAliveClientMixin:保此部分页面的状态: 修改的页面代码: 页面效果: Tabs.dart import 'pa ...
- 页面跳转、底部tabs切换页面
1.页面跳转 import { NavController } from 'ionic-angular'; constructor(public navCtrl: NavController) { } ...
- MUI框架开发HTML5手机APP(二)--页面跳转传值&底部选项卡切换
概 述 JRedu 在上一篇博客中,我们学习了如何使用Hbuilder创建一个APP,同时如何使用MUI搭建属于自己的第一款APP,没有学习的同学可以戳链接学习: http://www.cnblo ...
- 点击某一按钮新增click,并切换页面
应用场景:对于web端接收手机验证码的处理方法:1.如果有权限可以通过查询数据库来获得手机验证码,方便快捷.2.如果后台系统保存了手机验证码,可以去后台获取验证码,然后填写到前台页面,此方法有两种处理 ...
- iOS开发 横向分页样式 可左右滑动或点击头部栏按钮进行页面切换
iOS开发 横向分页样式 可左右滑动或点击头部栏按钮进行页面切换 不多说直接上效果图和代码 1.设置RootViewController为一个导航试图控制器 // Copyright © 2016年 ...
- flutter tab切换页面防止重置
问题描述:TabBar 配合TabBarView切换页面,然后每个页面是一个listview加载数据,但是切换页面后listview的数据会被重置, 重新被加载了,解决办法使用 with Automa ...
随机推荐
- JSP中重定向页面没有全屏显示的问题解决
<script type="text/javascript"> window.onload=function(){ if(window.parent != window ...
- SQLI DUMB SERIES-16
(1)无论怎么输入,都没有回显,但当输入 admin")#时,显示登录成功.若通过其他方法获取数据库的用户名,可通过这个方法登录成功. (2)获取其他信息可用考虑时间延迟注入.方法同15.
- mac 常用技巧
1.xcode-select --install 2.iterm2 https://www.cnblogs.com/xishuai/p/mac-iterm2.html 3.SUDO 免密码 visud ...
- NoSQL、memcached介绍、安装memcached、查看memcached状态
1.NoSQL 2.memcached介绍 3.安装memcached(二进制包安装) yum install -y memcached libmemcached libevent (若没有安 ...
- ubuntu下cannot find lib....so.x 寻找动态链接库
默认从/lib . /usr/lib 以及配置文件/etc/ld.so.conf内所列的目录下加载.so文件, 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld ...
- UE4 PostProcessVolume 蓝图操作后期框
如图找到场景里面的后期框,首先我们要获得它的设置,Settings 大概就是属性的意思.通过Settings设置其它的属性.Set members in PostProcessSetting 就是接口 ...
- python------mysql API
参考引用博客:http://www.cnblogs.com/wupeiqi/articles/5713330.html ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全 ...
- Redis纠错
在Java使用Redis的过程中遇见了一个问题, redis.clients.jedis.exceptions.JedisConnectionException: Could not get a re ...
- Oracle的安装+PL安装+系统变量配好后重启
服务启动后的样子 第一步安装oracle服务 链接: https://pan.baidu.com/s/1sRu95Vy1arc3gfuH9nH5Wg 提取码: eaxx 复制这段内容后打开百度网盘手机 ...
- Unity 3D中不得不说的yield协程与消息传递
1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...