声明:阅读该文章请确保你有 Android 开发的相关知识
这是《Android 开发者的 Flutter》系列的第二篇,如果想看上一篇请参考:
Android 开发者的 Flutter(一) —— Flutter 中的 View 及更新

如何布置 Widget?XML 布局文件在哪?

在 Android 中,您通过 XML 编写布局,但在 Flutter 中,您可以使用 Widget 树来编写布局。

这里是一个例子,你将如何在屏幕上显示一个简单的 Widget,并添加 Padding。

@overrideWidget build(BuildContext context) {  return new Scaffold(    appBar: new AppBar(      title: new Text("Sample App"),    ),    body: new Center(      child: new MaterialButton(        onPressed: () {},        child: new Text('Hello'),        padding: new EdgeInsets.only(left: 10.0, right: 10.0),      ),    ),  );}

您可以在 Widget 目录中查看 Flutter 提供的所有布局 。

如何添加或从布局中删除组件?

在 Android 中,您可以调用 addChild() 或 removeChild() 在父级上动态添加或删除子 View。在 Flutter 中,因为 Widget 是不可变的,所以没有 addChild()。相反,您可以传递一个函数,该函数返回一个窗口 Widget 到父窗口并通过 bool 标志控制该窗口的创建。

例如,当你点击 FloatingActionButton 时,你可以在两个 Widget 之间切换 :

import 'package:flutter/material.dart';void main() {  runApp(new SampleApp());}class SampleApp extends StatelessWidget {  // This widget is the root of your application.  @override  Widget build(BuildContext context) {    return new MaterialApp(      title: 'Sample App',      theme: new ThemeData(        primarySwatch: Colors.blue,      ),      home: new SampleAppPage(),    );  }}class SampleAppPage extends StatefulWidget {  SampleAppPage({Key key}) : super(key: key);  @override  _SampleAppPageState createState() => new _SampleAppPageState();}class _SampleAppPageState extends State<SampleAppPage> {  // Default value for toggle  bool toggle = true;  void _toggle() {    setState(() {      toggle = !toggle;    });  }  _getToggleChild() {    if (toggle) {      return new Text('Toggle One');    } else {      return new MaterialButton(onPressed: () {}, child: new Text('Toggle Two'));    }  }  @override  Widget build(BuildContext context) {    return new Scaffold(      appBar: new AppBar(        title: new Text("Sample App"),      ),      body: new Center(        child: _getToggleChild(),      ),      floatingActionButton: new FloatingActionButton(        onPressed: _toggle,        tooltip: 'Update Text',        child: new Icon(Icons.update),      ),    );  }}

更多相关文章

  1. Android解析WindowManagerService(二)WMS的重要成员和Window的添加
  2. 将Android工程做成jar包和资源文件
  3. 《Android(安卓)Dev Guide》系列教程10:用户界面之创建菜单
  4. Android应用开发资源
  5. Android软键盘的显示与隐藏
  6. 为Android添加Java层服务
  7. 怎样成为一名Android开发者
  8. Android开发框架SmartAndroid2.0 强劲框架
  9. Android(安卓)开发者不得不面对的六个问题

随机推荐

  1. Android(安卓)源码编译so,jar
  2. 【Android】基础1
  3. Android(安卓)SmartRecyclerView
  4. Android二级分类列表GirdView
  5. Android(安卓)ADT 20.0.0 发布
  6. android(9)_数据存储与访问3_scard_login
  7. android 用到的技巧集
  8. Android中Handler的作用和使用方法
  9. android 编译 release 签名
  10. Understanding Android(安卓)Core: Loope