flutter 常用视图组件
1.custom class widget
main.dart
1 import 'package:flutter/material.dart';
2 import './pages/custom.dart';
3
4 void main() {
5 runApp(new Application());
6 }
7 class Application extends StatelessWidget {
8 @override
9 Widget build(BuildContext context) {
10 return new MaterialApp(
11 title: 'custom',
12 home: new Scaffold(
13 body: new customWidgets()
14 )
15 );
16 }
17 }
custom.dart
1 import 'package:flutter/material.dart';
2
3 class customWidgets extends StatelessWidget {
4 @override
5 Widget build(BuildContext context) {
6 return new Container(
7 color: Colors.pink,
8 child: new Container(
9 color: Colors.purple,
10 margin: const EdgeInsets.all(10.0),
11 child: new Container(
12 color: Colors.orange,
13 margin: const EdgeInsets.all(10.0),
14 child: new Container(
15 color: Colors.yellow,
16 margin: const EdgeInsets.all(10.0),
17 ),
18 ),
19 ),
20 );
21 }
22 }
2.radio单选按钮
import 'package:flutter/material.dart';
void main() {
  runApp(new Application());
}
class Application extends StatefulWidget {
  @override
  _ApplicationState createState() => _ApplicationState();
}
class _ApplicationState extends State<Application> {
  int rvalue = 0;
  void method1(value) {
    setState(() {
      rvalue = value;
    });
  }
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
        title: 'a',
        home: new Scaffold(
          appBar: new AppBar(
            title: new Text("a"),
            backgroundColor: Colors.green,
          ),
          body: new Center(
            child: new Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                new Radio(value: 1, groupValue: rvalue, onChanged: (int rval){method1(rval);}),
                new Radio(value: 2, groupValue: rvalue, onChanged: (int rval){method1(rval);}),
                new Radio(value: 3, groupValue: rvalue, onChanged: (int rval){method1(rval);}),
              ],
            ),
          ),
        )
    );
  }
}
3.checkbox复选框
import 'package:flutter/material.dart';
void main() {
  runApp(new Application());
}
class Application extends StatefulWidget {
  @override
  _ApplicationState createState() => _ApplicationState();
}
class _ApplicationState extends State<Application> {
  bool select = false;
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
        title: 'a',
        home: new Scaffold(
          appBar: new AppBar(
            title: new Text("a"),
            backgroundColor: Colors.green,
          ),
          body: new Center(
            child: new Checkbox(
                value: select,
                onChanged: (bool cb) {
                  setState(() {
                    select = cb;
                    print(select);
                  });
                }),
          ),
        )
    );
  }
}
4.snackBar通知条
import 'package:flutter/material.dart';
import './pages/OtherPage.dart'; void main() {
runApp(new Application());
}
class Application extends StatefulWidget {
@override
_ApplicationState createState() => _ApplicationState();
} class _ApplicationState extends State<Application> {
bool bval = false;
void method1(value) {
setState(() {
bval = value;
});
}
@override
Widget build(BuildContext context) {
final GlobalKey<ScaffoldState> _skey = new GlobalKey<ScaffoldState>();
void method1() {
_skey.currentState.showSnackBar(new SnackBar(
content: new Text('Activated snack bar'),
backgroundColor: Colors.blue,
));
}
return new MaterialApp(
title: 'a',
home: new Scaffold(
key: _skey,
body: new Center(
child: new RaisedButton(
onPressed: () {method1();},
child: new Text('raisebtn'),
),
), )
);
}
}
5.drawer,类似qq侧边划出的效果
1 import 'package:flutter/material.dart';
2
3 void main() {
4 runApp(new Application());
5 }
6 class Application extends StatefulWidget {
7 @override
8 _ApplicationState createState() => _ApplicationState();
9 }
10
11 class _ApplicationState extends State<Application> {
12 bool bval = false;
13 void method1(value) {
14 setState(() {
15 bval = value;
16 });
17 }
18 @override
19 Widget build(BuildContext context) {
20 return new MaterialApp(
21 title: 'a',
22 home: new Scaffold(
23 appBar: new AppBar(
24 title: new Text("a"),
25 backgroundColor: Colors.green,
26 ),
27 drawer: new Drawer(
28 child: new ListView(
29 children: <Widget>[
30 new UserAccountsDrawerHeader(
31 accountName: new Text('pengjinlong'),
32 accountEmail: new Text('pengjinlong43@gmail.com'),
33 currentAccountPicture: new CircleAvatar(
34 backgroundColor: Colors.black26,
35 child: new Text('Peng'),
36 ),
37 decoration: new BoxDecoration(color: Colors.blueAccent),
38 otherAccountsPictures: <Widget>[
39 new CircleAvatar(
40 backgroundColor: Colors.black26,
41 child: new Text('jin'),
42 ),
43 new CircleAvatar(
44 backgroundColor: Colors.black26,
45 child: new Text('long'),
46 ),
47 ],
48 ),
49 new ListTile(
50 title: new Text('d1'),
51 trailing: new Icon(Icons.accessibility),
52 onTap: () {
53 Navigator.pop(context);
54 },
55 ),
56 new ListTile(
57 title: new Text('d1'),
58 trailing: new Icon(Icons.accessibility),
59 ),
60 new ListTile(
61 title: new Text('d1'),
62 trailing: new Icon(Icons.accessibility),
63 )
64 ],
65 ),
66 ),
67 )
68 );
69 }
70 }
6.switch按钮
1 import 'package:flutter/material.dart';
2
3 void main() {
4 runApp(new Application());
5 }
6 class Application extends StatefulWidget {
7 @override
8 _ApplicationState createState() => _ApplicationState();
9 }
10
11 class _ApplicationState extends State<Application> {
12 bool bval = false;
13 void method1(value) {
14 setState(() {
15 bval = value;
16 });
17 }
18 @override
19 Widget build(BuildContext context) {
20 return new MaterialApp(
21 title: 'a',
22 home: new Scaffold(
23 appBar: new AppBar(
24 title: new Text("a"),
25 backgroundColor: Colors.green,
26 ),
27 body: new Center(
28 child: new Column(
29 mainAxisAlignment: MainAxisAlignment.center,
30 children: <Widget>[
31 new Switch(
32 value: bval,
33 onChanged: (bool val) {
34 method1(val);
35 },
36 )
37 ],
38 ),
39 ),
40 )
41 );
42 }
43 }
7.listView
class _ApplicationState extends State<Application> {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
        title: 'dummy application',
        home: new Scaffold(
          appBar: new AppBar(
            title: new Text('List widget'),
          ),
          body: new ListView(
            children: <Widget>[
              new ListTile(
                title: new Text('item 1dd'),
                trailing: new Icon(Icons.arrow_forward),
              ),
              new ListTile(
                title: new Text('item 2'),
                trailing: new Icon(Icons.arrow_forward),
              ),
              new ListTile(
                title: new Text('item 3'),
                trailing: new Icon(Icons.arrow_forward),
              ),
            ],
          ),
        )
    );
  }
}
tips: listview的title属性可以设置InputFiled实现登录框
flutter 常用视图组件的更多相关文章
- Flutter常用布局组件
		Flutter控件本身通常由许多小型.单用途的控件组成,结合起来产生强大的效果,例如,Container是一种常用的控件,由负责布局.绘画.定位和大小调整的几个控件组成,具体来说,Container是 ... 
- Flutter 常用组件
		无状态组件(StatelessWidget)是不可变的,这意味着它的属性不能改变,所有的值都是最终的. 有状态组件(StatefulWidget)持有的状态可能在Widget生命周期中发生变化.实现一 ... 
- [译]ASP.NET Core 2.0 视图组件
		问题 如何在ASP.NET Core 2.0中使用视图组件? 答案 新建一个空项目,修改Startup类并添加MVC服务和中间件: public void ConfigureServices(ISer ... 
- DjangoRestFramework学习二之序列化组件、视图组件 serializer  modelserializer
		DjangoRestFramework学习二之序列化组件.视图组件 本节目录 一 序列化组件 二 视图组件 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组 ... 
- 前后端分离djangorestframework——视图组件
		CBV与FBV CBV之前说过就是在view.py里写视图类,在序列化时用过,FBV就是常用的视图函数,两者的功能都可以实现功能,但是在restful规范方面的话,CBV更方便,FBV还要用reque ... 
- $Django patch与put,视图组件,路由控制,响应器
		1 patch与put(幂等?回顾) PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等的.幂等是一个数学和计算机学概念,在计算机范畴内表示一个操作执行任意 ... 
- React Native常用第三方组件汇总--史上最全 之一
		React Native 项目常用第三方组件汇总: react-native-animatable 动画 react-native-carousel 轮播 react-native-countdown ... 
- React Native常用第三方组件汇总--史上最全[转]
		本文出处: http://blog.csdn.net/chichengjunma/article/details/52920137 React Native 项目常用第三方组件汇总: react-na ... 
- sencha touch 入门系列 (九)sencha touch 视图组件简介
		对于一个普通用户来说,你的项目就是一组简单的视图集合,用户直接通过跟视图进行交互来操作你的应用,对于一个开发人员来说,视图是一个项目的入口,虽然大部分时候最有价值的部分是在model层和control ... 
随机推荐
- pxe+kickstart部署多个版本的Linux操作系统(上)---原理篇
			PXE概述: 1.PXE(Pre-bootExecution Environment),预启动执行环境2.通过网络接口启动计算机3.支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系 ... 
- Java003-String字符串
			1.这两种定义有什么区别 /*** * 面试题:这两种定义方式有什么区别? * 如何证明? * @param args */ public static void main(String[] args ... 
- C语言:2.2
			#include <stdio.h> int main() { unsigned short bla=32768; short blb=32768; printf("%d %d\ ... 
- win10禁止粘滞键 禁止按5次shift开启粘滞键
			如果你感觉粘滞键的快捷键影响了你的使用或想强行更改连续按5次上档键的指向的话,建议用你需要的程序替换%windir%\system32文件夹下面的sethc.exe @echo offclsdel / ... 
- SQL2008 合并多个结构相同的表的所有数据到新的表
			select * into tikua from (select * from tiku20210303 union all select * from tiku) a 
- uni-app中当uni.navigateTo传的参数为object时,通过传递的不同参数,在显示单页面内通过v-if判断显示出对应的内容(可实现多页面效果)
			通过uni-app中当uni.navigateTo传的参数为object时,通过传递的不同参数,在显示单页面内通过v-if判断显示出对应的内容(可实现多页面效果) 起始页跳转到对应页面,并传递参数(o ... 
- 从代码生成说起,带你深入理解 mybatis generator 源码
			枯燥的任务 这一切都要从多年前说起. 那时候刚入职一家新公司,项目经理给我分配了一个比较简单的工作,为所有的数据库字段整理一张元数据表. 因为很多接手的项目文档都不全,所以需要统一整理一份基本的字典表 ... 
- Windows配置深度学习环境详细教程(一):安装Pycharm和Miniconda、conda环境介绍
			序言 对于想要入门Python或者深度学习的初学者而言,配置环境一直是一个令人头疼的问题.相信有许多人经历过安装第三方包失败,安装好了却在使用中报错,安装CUDA.tensorflow.pytorch ... 
- MySQL是怎么解决幻读问题的?
			前言 我们知道MySQL在可重复读隔离级别下别的事物提交的内容,是看不到的.而可提交隔离级别下是可以看到别的事务提交的.而如果我们的业务场景是在事物内同样的两个查询我们需要看到的数据都是一致的,不能被 ... 
- jvm源码解读--09 创建oop对象,将static静态变量放置在oop的96 offset处 第二篇
			先打断点systemDictionary.cpp 1915行 Universe::fixup_mirrors(CHECK); 进入 void Universe::fixup_mirrors(TRAPS ... 
