2017-06-23 55 views
2

是否可以將FloatingActionButton保留在中心而不是右側?顫振 - FloatingActionButton在中心

import 'package:flutter/material.dart'; 
import 'number.dart'; 
import 'keyboard.dart'; 

class ContaPage extends StatelessWidget { 
    @override 
    Widget build(BuildContext context) => new Scaffold(
    body: new Column(
     children: <Widget>[ 
     new Number(), 
     new Keyboard(), 
     ], 
    ), 
    floatingActionButton: new FloatingActionButton(
     elevation: 0.0, 
     child: new Icon(Icons.check), 
     backgroundColor: new Color(0xFFE57373), 
     onPressed:(){} 
    ) 
); 
} 

enter image description here

回答

1

嘗試在Center部件包裹,或在你的Column使用CrossAxisAlignment.center一個crossAxisAlignment

你應該選擇你的Column的一部分被包裹在一個Flexible將崩潰,以避免溢出,或部分或全部替代它與一個ListView,使用戶可以滾動查看被隱藏的部分。

+0

但其中在floatingActionButton或在本體的底部中心的? – rafaelcb21

+0

我嘗試在floatingActionButton屬性中新的中心包裹新的FloatingActionButton,該按鈕大約在屏幕的中心,而不是在屏幕底部的中心 – rafaelcb21

+0

使其成爲列的最後一個元素。您也可以在您的Column上使用CrossAxisAlignment.center的crossAxisAlignment –

0

我修改了代碼,現在該按鈕位於底部中心,但我不知道這是否會永遠停留在底部,無論畫面的大小。

import 'package:flutter/material.dart'; 
import 'number.dart'; 
import 'keyboard.dart'; 

class ContaPage extends StatelessWidget { 
    @override 
    Widget build(BuildContext context) => new Scaffold(
    body: new Column(
     children: <Widget>[ 
     new Number(), 
     new Keyboard(), 
     new Stack(
      alignment: new FractionalOffset(0.5, 1.0), 
      children: <Widget>[ 
      new FloatingActionButton(
       elevation: 0.0, 
       child: new Icon(Icons.check), 
       backgroundColor: new Color(0xFFE57373), 
       onPressed:(){} 
      ) 
      ], 
     ) 
     ], 
    ), 
); 
} 

enter image description here

0

通過改變使用crossAxisAlignment,所述mainAxisAlignment和柔性的FloatingActionButton邏輯分別在屏幕

import 'package:flutter/material.dart'; 
import 'number.dart'; 
import 'keyboard.dart'; 

class ContaPage extends StatelessWidget { 
    @override 
    Widget build(BuildContext context) => new Scaffold(
    body: new Column(
     crossAxisAlignment: CrossAxisAlignment.center, 
     mainAxisAlignment: MainAxisAlignment.spaceBetween,  
     children: <Widget>[ 
     new Number(), 
     new Keyboard(), 
     new Flexible(
      child: new Container(
      padding: new EdgeInsets.only(bottom: 16.0), 
      child: new FloatingActionButton(
       elevation: 0.0, 
       child: new Icon(Icons.check), 
       backgroundColor: new Color(0xFFE57373), 
       onPressed:(){} 
      ) 
     )   
     ) 
     ], 
    ), 
); 
}