如何在 flutter 中创建一个始终粘在页面底部的按钮?

5 flutter flutter-layout

我想在flutter中实现以下PhonePe UI。如何确保“继续”按钮始终保持在底部位置?

图像

chu*_*han 8

您可以复制粘贴运行下面的完整代码
您可以使用bottomSheet属性Scaffold

return Scaffold(
      ...
      bottomSheet: Container(
        width: MediaQuery.of(context).size.width,
        child: RaisedButton(
          child: Text('PROCEED'),
          onPressed: () {},
        ),
      ),
    );
Run Code Online (Sandbox Code Playgroud)

工作演示

在此输入图像描述

完整代码

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: BottomSheetTestPage(),
    );
  }
}

class BottomSheetTestPage extends StatefulWidget {
  @override
  _BottomSheetPageState createState() => _BottomSheetPageState();
}

class _BottomSheetPageState extends State<BottomSheetTestPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('bottom sheet'),
      ),
      body: ListView.builder(
        itemBuilder: (BuildContext context, int index) {
          return ListTile(
            title: Text(index.toString()),
            subtitle: Text("${index}"),
          );
        },
        itemCount: 300,
      ),
      bottomSheet: Container(
        width: MediaQuery.of(context).size.width,
        child: RaisedButton(
          child: Text('PROCEED'),
          onPressed: () {},
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)