Flutter - FloatingActionButton in the center

前端 未结 10 1248
无人及你
无人及你 2020-12-15 18:18

Is it possible to make the FloatingActionButton in the centre instead of the right side?

import \'package:flutter/material.dart\';
import \'numb         


        
相关标签:
10条回答
  • 2020-12-15 18:58

    Try wrapping it in a Center widget or use a crossAxisAlignment of CrossAxisAlignment.center on your Column.

    You should pick one part of your Column to be wrapped in a Flexible that will collapse to avoid overflow, or replace some or all of it with a ListView so users can scroll to see the parts that are hidden.

    0 讨论(0)
  • 2020-12-15 18:59

    after end of the floating action button widget, you can Use floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,

    For Example

       import 'dart:io';
    import 'package:flutter/material.dart';
    import 'package:image_picker/image_picker.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
      File _image;
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          theme: ThemeData.dark(),
          title: "Camera App",
          home: Scaffold(
            appBar: AppBar(
              title: Text("Camera App"),
            ),
            body: Center(
              child: Center(
                child: _image == null
                    ? Text('No image selected.')
                    : Image.file(_image,
                    alignment: Alignment.topLeft,
                    ),
              ),
            ),
            floatingActionButton: FloatingActionButton(
              elevation: 50,
              hoverColor: Colors.red,
              autofocus: true,
              onPressed: () {
                imagepicker();
              },
              child: Icon(Icons.camera_alt),
              tooltip: 'Pick Image',
            ),
             floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
          ),
        );
      }
    
      Future imagepicker() async {
        var image = await ImagePicker.pickImage(source: ImageSource.gallery);
        setState(() {
          _image = image;
        });
      }
    }
    
    0 讨论(0)
  • 2020-12-15 19:00

    I modified the code, now the button is in the bottom center but I do not know if it will always stay in the bottom, regardless of the size of the screen.

    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: (){}
                )
              ],
            )
          ],
        ), 
      );
    }
    

    0 讨论(0)
  • 2020-12-15 19:01

    Use the Property floatingActionButtonLocation of scaffold class.

    floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,

    Full Example:

    import 'package:flutter/material.dart';
    
    final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
          debugShowCheckedModeBanner: false,
          home: HomePage()
        );
      }
    }
    
    class HomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Container(child: Center(child: Text('Hello World')),),
          floatingActionButton: FloatingActionButton(
            onPressed: () {},
            child: Icon(Icons.camera, color: Colors.white, size: 29,),
            backgroundColor: Colors.black,
            tooltip: 'Capture Picture',
            elevation: 5,
            splashColor: Colors.grey,
          ),
          floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
        );
      }
    }
    
    0 讨论(0)
  • 2020-12-15 19:02

    You can use Container and Align widgets as below:

    @override
    Widget build(BuildContext context) {
        return new Scaffold(
          body: Center(
    
          ),
          floatingActionButton: Container(
            padding: EdgeInsets.only(bottom: 100.0),
            child: Align(
              alignment: Alignment.bottomCenter,
              child: FloatingActionButton.extended(
                onPressed: _getPhoneAuthResult,
                icon: Icon(Icons.phone_android),
                label: Text("Authenticate using Phone"),
              ),
            ),
          ),
          floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
        );
      }
    
    0 讨论(0)
  • FloatingActionButton Flutter - More Details

    Use this property

    floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
    
    0 讨论(0)
提交回复
热议问题