我有以下结构(简化):
LEFT_WIDTH = 80
Widget _landscape(ctx) => Scaffold(
body: AnnotatedRegion<SystemUiOverlayStyle>(
child: Row(
children: <Widget>[
Container(color: Colors.white, width: LEFT_WIDTH), // LEFT MENU
Expanded(child: _stack()), // MAIN CONTENT
],
),
value: NOT_IMPORTANT,
),
);
Widget _stack() => Stack(
children: <Widget>[
SlidingUpPanel( // https://pub.dev/packages/sliding_up_panel
body: SizedBox(
child: ABC_GRID,
width: mq.size.width - LEFT_WIDTH,
height: mq.size.height,
),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
panelBuilder: (sc) => _panel(ctx, sc),
),
],
);
这将产生以下输出:
请注意,向上/向下拖动面板时,面板的左侧阴影会消失。
查看库的源代码,panel.dart
,面板实现如下:
!_isPanelVisible ? Container() : _gestureHandler(
child: AnimatedBuilder(
animation: _ac,
builder: (context, child) {
return Container(
height: _ac.value * (widget.maxHeight - widget.minHeight) + widget.minHeight,
margin: widget.margin,
padding: widget.padding,
decoration: widget.renderPanelSheet ? BoxDecoration(
border: widget.border,
borderRadius: widget.borderRadius,
boxShadow: widget.boxShadow,
) : null,
child: child,
);
},
child: Stack(
children: <Widget>[
Positioned(
child: Container(maxHeight, child: widget.panelBuilder(_sc)),
...
),
...
],
),
),
),
如何让阴影总是出现? (基本上,拖动时也会流血到它的邻居)