【问题标题】:How to represent the lack of widget in flutter?如何表示flutter中缺少widget?
【发布时间】:2020-03-24 16:13:11
【问题描述】:

我有一个容器,我想在其中显示带有条件的边框,如果条件为真则显示边框,否则不显示。

类似这样的:-

bool condition1;
bool condition2;

content: Container(
    decoration: BoxDecoration(
      border: Border(
        top: condition1 ? BorderSide(
          color: Colors.grey[300],
          style: BorderStyle.solid,
          width: 1,
        ) : null,
        bottom: condition1 ? BorderSide(
          color: Colors.grey[300],
          style: BorderStyle.solid,
          width: 1,
        ) : null,
      ),
    ),
   child: Container(),
   ),

但我不能通过null,它给出错误。

我可以做的另一种方法是将宽度设为 0.0,但边框不会完全消失。所以我想删除边框小部件。

那么,如果我们不能使用null,那么如何在颤振中表示缺少小部件。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您可以使用BorderSide.none 代替null。

    Container(
       decoration: BoxDecoration(
          border: Border(
             top: condition1 ? BorderSide(
                color: Colors.grey[300],
                style: BorderStyle.solid,
                width: 1,
              ) : BorderSide.none,
             bottom: condition1 ? BorderSide(
                color: Colors.grey[300],
                style: BorderStyle.solid,
                width: 1,
             ) : BorderSide.none,
           ),
        ),
       child: Container(),
    ),
    

    更多详情请参考BorderSide.none

    【讨论】:

    • 好的,谢谢,我不知道BorderSide.none。但是如果没有这样的小部件怎么办,那么How to represent the lack of widget in flutter? 有什么解决方案吗?只是跳出框框思考。
    • @rahulKushwaha 对于大多数小部件,您可以使用 null 作为缺少该小部件。例如。在你的孩子:Container() 中,你可以写 child:null。对于这种情况(边界),实现特别要求数据为非空。你可以在这里看到断言api.flutter.dev/flutter/painting/Border/Border.html
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 2020-05-05
    • 2019-04-28
    • 2021-12-19
    • 2022-06-15
    • 1970-01-01
    • 2021-04-23
    • 2019-10-24
    相关资源
    最近更新 更多