如何删除屏幕底部和底栏之间的底部空间?

Posted

技术标签:

【中文标题】如何删除屏幕底部和底栏之间的底部空间?【英文标题】:how to remove bottom space between bottom of the screen and bottom bar? 【发布时间】:2020-12-05 06:47:55 【问题描述】:

如何去除底部栏和屏幕底部之间的空白。我也尝试在底部容器中应用填充或边距,但它不起作用。请帮我解决这个问题。 嘿帮助我,我担心这个错误。这需要我大部分时间,但我无法解决它。请帮帮我。

这是我的代码

import 'dart:ui';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:provider/provider.dart';
import 'package:grk_001/Provider/products.dart';

class ProductDetails extends StatelessWidget 
  static const String routename = 'ProductDetails';
  @override
  Widget build(BuildContext context) 
    final devicesize = MediaQuery.of(context).size;
    final Productid = ModalRoute.of(context).settings.arguments as String;
    final loadedproduct = Provider.of<Products>(
      context,
    ).findByid(Productid);

    return SafeArea(
      maintainBottomViewPadding: true,
      child: Scaffold(
        appBar: AppBar(
          title: Text(loadedproduct.title == null ? '' : loadedproduct.title),
        ),
        body: Container(
          margin: EdgeInsets.zero,
          padding: EdgeInsets.zero,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              SingleChildScrollView(
                child: Column(
                  children: <Widget>[
                    Container(
                      width: double.infinity,
                      height: 300,
                      child: Image.network(
                        loadedproduct.imageUrl,
                        fit: BoxFit.cover,
                      ),
                    ),
                    SizedBox(
                      height: 15.0,
                    ),
                    Text(
                      '₹$loadedproduct.price',
                      style: TextStyle(fontSize: 30.0),
                    ),
                    SizedBox(
                      height: 10.0,
                    ),
                    Text(
                      loadedproduct.description,
                      softWrap: true,
                      textAlign: TextAlign.center,
                      style: TextStyle(fontSize: 20.0),
                    ),
                    Row(
                      children: <Widget>[
                        Expanded(
                          child: FlatButton.icon(
                              onPressed: () ,
                              icon: Icon(
                                Icons.arrow_drop_down,
                                color: Colors.pink,
                              ),
                              label: Text(
                                'Quantity',
                                style: TextStyle(color: Colors.pink),
                              )),
                        ),
                        Expanded(
                          child: FlatButton.icon(
                            onPressed: () ,
                            icon: Icon(
                              Icons.arrow_drop_down,
                              color: Colors.pink,
                            ),
                            label: Text(
                              'Color',
                              style: TextStyle(color: Colors.pink),
                            ),
                          ),
                        )
                      ],
                    )
                  ],
                ),
              ),
              Container(
                padding: EdgeInsets.zero,
                margin: EdgeInsets.zero,
                width: double.infinity,
                decoration: BoxDecoration(),
                child: Row(
                  children: <Widget>[
                    Expanded(
                      flex: 5,
                      child: FlatButton(
                        shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(0.0),
                        ),
                        color: Colors.pink,
                        onPressed: () ,
                        child: Text('BUY NOW'),
                      ),
                    ),
                    Expanded(
                      flex: 1,
                      child: InkWell(
                        onTap: () ,
                        child: Container(
                          child: Icon(
                            Icons.favorite,
                            size: 37.0,
                            color: Colors.red,
                          ),
                        ),
                      ),
                    ),
                    Expanded(
                      flex: 1,
                      child: InkWell(
                        onTap: () ,
                        child: Container(
                          child: Icon(
                            Icons.shopping_cart,
                            size: 37.0,
                            color: Colors.red,
                          ),
                        ),
                      ),
                    ),
                  ],
                ),
              )
            ],
          ),
        ),
      ),
    );
  

【问题讨论】:

分享代码。 看起来像一个外部小部件(您发布的容器的父级)在底部有一些填充/边距。 如果父小部件填充/边距不是问题,则将脚手架包装在 SafeArea 中并将底部设置为 true。 它不工作 你能把代码分享给父部件吗? 【参考方案1】:

终于找到了你的问题。 问题在于您的“立即购买”按钮!它占据了额外的高度,因此从底部向上可以看到它。 由于您的图标大小为 37,因此最好使用大于 37 的高度。 为父 Container 和 Button 的 Container 设置它。 另外,记下RowcrossAxisAlignment。 对您的“立即购买”按钮执行类似操作,

    Container(
            width: MediaQuery.of(context).size.width,
            height: 40.0,
            color: Colors.green, 
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.end,
              children: <Widget>[
                Expanded(
                  flex: 5,
                  child: Container(
                    height: 40.0,
                    child: FlatButton(
                      shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(0.0),
                      ),
                      color: Colors.pink,
                      onPressed: () ,
                      child: Text('BUY NOW'),
                    ),
                  ),
                ),
                Expanded(
                  flex: 1,
                  child: InkWell(
                    onTap: () ,
                    child: Container(
                      child: Icon(
                        Icons.favorite,
                        size: 37.0,
                        color: Colors.red,
                      ),
                    ),
                  ),
                ),
                Expanded(
                  flex: 1,
                  child: InkWell(
                    onTap: () ,
                    child: Container(
                      child: Icon(
                        Icons.shopping_cart,
                        size: 37.0,
                        color: Colors.red,
                      ),
                    ),
                  ),
                ),
              ],
            ),
          )

希望这能解决您的问题。

【讨论】:

以上是关于如何删除屏幕底部和底栏之间的底部空间?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除屏幕底部提升按钮下方的空间?

如何使用同一个应用制作抽屉式导航和底部导航?

如何在 React Native 中删除某个屏幕上的底部任务栏?

iOS图表,删除底部xAxis标签创建的额外空间

如何在 SwiftUI 中删除 List 和 ScrollView 的底部填充

如何删除 QMChatViewController 底部的一些额外空间?