如何在Flutter中向DropdownButton添加圆形?

时间:2019-05-21 12:38:06

标签: dart flutter

我想知道如何通过添加如下图所示的圆形边框来自定义DropdownButton。

enter image description here

1 个答案:

答案 0 :(得分:0)

不可能以简单的方式做到这一点。您必须编辑_DropdownMenuPainter中的_DropdownMenuStatedropdrown.dart类,这是Flutter资料包的一部分。

_DropdownMenuPainter中,更改在构造函数中设置的BoxDecoration半径:

_DropdownMenuPainter({
    ...
    this.resize,
  }) : _painter = BoxDecoration(
    ...
    borderRadius: BorderRadius.circular(16.0),  // Set the radius you want here
    boxShadow: kElevationToShadow[elevation],
  ).createBoxPainter(),
        super(repaint: resize);

_DropdownMenuState的方法build()内,用Material包装ClipRRect小部件,并将其borderRadius设置为与{{ 1}}:

_DropdownMenuPainter

请注意,更新Flutter时,您将丢失这些更改。

更新:

我本来要向Flutter进行公关,但花了1个小时尝试运行测试,但没有成功,因此我不会在此上浪费时间。相反,我做了一个要点,因此您可以将对本地Flutter副本所做的更改复制到整个文件中。

https://gist.github.com/hugocbpassos/2a63594a21d7f231e97dd7dc1f18ee68

要使用它,只需设置return FadeTransition( opacity: _fadeOpacity, child: CustomPaint( ... child: Semantics( ... child: ClipRRect( borderRadius: BorderRadius.circular(16.0), // This must be identical to the one set before child: Material( ... ), ), ), ), ); 属性:

radius