哪个小部件可以用作新路线中的根小部件(支持文本),而不会覆盖整个屏幕呢?

时间:2019-05-28 14:07:41

标签: flutter

我正在创建新页面路由PopupRoute,并使用Stack作为新弹出页面的根。直到我将Text添加到其子级之前,它都可以正常工作。文本下面会有两条黄线。我尝试了Material(child:Stack())Scaffold(child:Stack())。它可以解决黄线问题,但可以覆盖整个屏幕,并使barrierDismissible 起作用。是否有人知道其他小部件可以解决我的情况下的文本黄色问题?非常感谢。

2 个答案:

答案 0 :(得分:1)

可能有一个更干净的解决方案,但我想到的第一件事是将Material包装在Align小部件中。

例如

showDialog(context: context, barrierDismissible: true, builder: (context) {
  return Stack(alignment: Alignment.center, fit: StackFit.loose, children: <Widget>[

    Container(width: 100, height: 100, color: Colors.blue),
    Align(
      child: Material(
        type: MaterialType.transparency,
        child: Text("TEXT"),
      )
    ),

  ]);
});

答案 1 :(得分:1)

您只需要将Text小部件包装在DefaultTextStyle小部件内。 DefaultTextStyleScaffold小部件会隐式添加一个Material小部件。

DefaultTextStyle(
  style: TextStyle(),
  child: Text("This is a test"),
),