脚手架的颤动,浮动动作按钮边缘

时间:2018-03-13 14:12:00

标签: dart flutter

我正在尝试构建一个用于FloatingActionButton的自定义实现,以替换Scaffold.floatingActionButton属性上的标准小部件。

问题在于,无论我尝试在该字段内渲染,都有一个16右下边距,而我找到的唯一解决方法是在flutter库中的Scaffold类中将该边距设置为零。

有没有人找到更好的解决方案?

2 个答案:

答案 0 :(得分:2)

尝试向Scaffold中的bottomSheet属性添加填充

PATH

答案 1 :(得分:0)

您将在构建器的Material App Global Padding中提供以下代码。

选中此https://github.com/flutter/flutter/issues/14222#issuecomment-384165992

还要提供代码

   double getSmartBannerHeight(MediaQueryData mediaQuery) {
  // https://developers.google.com/admob/android/banner#smart_banners
  if (Platform.isAndroid) {
    if (mediaQuery.size.height > 720) return 90.0;
    if (mediaQuery.size.height > 400) return 50.0;
    return 32.0;
  }
  // https://developers.google.com/admob/ios/banner#smart_banners
  // Smart Banners on iPhones have a height of 50 points in portrait and 32 points in landscape.
  // On iPads, height is 90 points in both portrait and landscape.
  if (Platform.isIOS) {
    // TODO use https://pub.dartlang.org/packages/device_info to detect iPhone/iPad?
    // if (iPad) return 90.0;
    if (mediaQuery.orientation == Orientation.portrait) return 50.0;
    return 32.0;
  }
  // No idea, just return a common value.
  return 50.0;
}

@override
Widget build(BuildContext context) {
  return new MaterialApp(
    // ...
    builder: (BuildContext context, Widget widget) {
      final mediaQuery = MediaQuery.of(context);
      return new Padding(
        child: widget,
        padding: new EdgeInsets.only(bottom: getSmartBannerHeight(mediaQuery)),
      );
    },
  );
}

谢谢。