颤动 - 键盘在屏幕上抬起FloatingActionButton

时间:2017-08-30 22:03:13

标签: dart flutter

我使用的是TextField,但键盘正在提升FloatingActionButton。我想知道键盘是否有可能不能引发FloatingActionButton

在下面的代码中,我以两种不同的方式放置了两个FloatingActionButton但是在两个键盘都上升,这阻碍了字段填充,因为FAB与TextField在同一行中,根据下面的GIF。

有什么方法可以解决这个问题吗?

enter image description here

import 'package:flutter/material.dart';
import 'dart:ui' as ui;

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(      
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    final ui.Size logicalSize = MediaQuery.of(context).size;
    final double _width = logicalSize.width;
    return new Scaffold(
      appBar: new AppBar(backgroundColor: new Color(0xFF26C6DA)),        
      body: new Stack(
        children: <Widget>[
          new ListView(
            children: <Widget>[
              new TextField(
                decoration: const InputDecoration(
                  labelText: "Description",
                ),
                style: Theme.of(context).textTheme.title,
              ),
              new TextField(
                decoration: const InputDecoration(
                  labelText: "Description",
                ),
                style: Theme.of(context).textTheme.title,
              ),
              new TextField(
                decoration: const InputDecoration(
                  labelText: "Description",
                ),
                style: Theme.of(context).textTheme.title,
              ),
            ],
          ),
          new Positioned(
            bottom: 16.0,
            left: (_width / 2) - 28,   
            child: new FloatingActionButton(
              backgroundColor: new Color(0xFFE57373),
              child: new Icon(Icons.check),
              onPressed: (){}
            ),            
          )
        ],        
      ),
      floatingActionButton: new FloatingActionButton(
        backgroundColor: new Color(0xFFE57373),
        child: new Icon(Icons.check),
      ),
    );
  }
}

1 个答案:

答案 0 :(得分:4)

看起来你正在设计一个全屏对话框。

浮动操作按钮表示应用程序中的主要操作,如创建新项目。它不是您用来确认更改的内容,而是关闭包含文本字段列表的全屏对话框。

我建议FloatingActionButtonAppBar广告位中使用FlatButton,而不是使用actions,就像在此Material design example中一样:

save

您可以在Gallery source code中看到如何在Flutter中构建全屏对话框的示例。