簡體   English   中英

行的子項不得包含任何 null 值,但在索引 2 處找到 null 值

[英]Row's children must not contain any null values, but a null value was found at index 2

我有下面的屏幕圖像

我在 ui 中有一個 Apple 登錄,所以我只需要在 IOS 中使用這個 Apple 登錄,所以我創建了以下代碼:

Platform.isIOS
                                ? IPetCustomCircleBtn(
                                    constraintWidth:
                                        constraints.maxWidth * 0.13,
                                    constraintHeight:
                                        constraints.maxHeight * 0.13,
                                    iPetShapeBorder: CircleBorder(
                                      side: BorderSide(
                                        width: 2,
                                        color: Colors.black,
                                        style: BorderStyle.solid,
                                      ),
                                    ),
                                    iPetChildCard: IPetCustomIcon(
                                      ipFontIc: FontAwesomeIcons.apple,
                                      colour: Colors.black,
                                    ),
                                    iPetIconColor: Colors.black,
                                    iPetFillColor: Colors.white,
                                  )
                                : null

我發現了這個錯誤:

Row's children must not contain any null values, but a null value was found at index 2

我試圖通過添加一個空的小部件作為下面的代碼來處理這個問題

Platform.isIOS
                                ? IPetCustomCircleBtn(
                                    constraintWidth:
                                        constraints.maxWidth * 0.13,
                                    constraintHeight:
                                        constraints.maxHeight * 0.13,
                                    iPetShapeBorder: CircleBorder(
                                      side: BorderSide(
                                        width: 2,
                                        color: Colors.black,
                                        style: BorderStyle.solid,
                                      ),
                                    ),
                                    iPetChildCard: IPetCustomIcon(
                                      ipFontIc: FontAwesomeIcons.apple,
                                      colour: Colors.black,
                                    ),
                                    iPetIconColor: Colors.black,
                                    iPetFillColor: Colors.white,
                                  )
                                : SizedBox()

但問題是外觀不好,因為我需要按鈕的 rest 位於行的中心,這是我的全行:

Row(
                          mainAxisAlignment: MainAxisAlignment.spaceAround,
                          children: [
                            IPetCustomCircleBtn(
                              constraintWidth: constraints.maxWidth * 0.13,
                              constraintHeight: constraints.maxHeight * 0.13,
                              iPetShapeBorder: CircleBorder(),
                              iPetChildCard: IPetCustomIcon(
                                ipFontIc: FontAwesomeIcons.google,
                                colour: Colors.white,
                              ),
                              iPetIconColor: Colors.white,
                              iPetFillColor: Colors.red,
                            ),
                            IPetCustomCircleBtn(
                              constraintWidth: constraints.maxWidth * 0.13,
                              constraintHeight: constraints.maxHeight * 0.13,
                              iPetShapeBorder: CircleBorder(),
                              iPetChildCard: IPetCustomIcon(
                                ipFontIc: FontAwesomeIcons.facebook,
                                colour: Colors.white,
                              ),
                              iPetIconColor: AppConst.kPrimaryWhiteBgColor,
                              iPetFillColor: AppConst.kBlueColor,
                            ),
                            Platform.isIOS
                                ? IPetCustomCircleBtn(
                                    constraintWidth:
                                        constraints.maxWidth * 0.13,
                                    constraintHeight:
                                        constraints.maxHeight * 0.13,
                                    iPetShapeBorder: CircleBorder(
                                      side: BorderSide(
                                        width: 2,
                                        color: Colors.black,
                                        style: BorderStyle.solid,
                                      ),
                                    ),
                                    iPetChildCard: IPetCustomIcon(
                                      ipFontIc: FontAwesomeIcons.apple,
                                      colour: Colors.black,
                                    ),
                                    iPetIconColor: Colors.black,
                                    iPetFillColor: Colors.white,
                                  )
                                : SizedBox()
                          ],
                        ),

所以對於這種情況有什么好辦法:D..

我希望這可以足夠清楚..

登錄屏幕

我建議你構建兩行,1 行有蘋果登錄,其他沒有,然后調用Platform.isIOS? rowWithIos: rowWithoutIos Platform.isIOS? rowWithIos: rowWithoutIos ,如果您為所有登錄類型構建小部件,您可以減少這兩行中的重復代碼。

我能想到的方法有兩種:

  1. 嘗試為您的sizedBox 添加高度和寬度

     SizedBox(height: 0, width: 0,)
  2. 嘗試

     Row( mainAxisAlignment: Platform.isIOS? MainAxisAlignment.spaceAround: MainAxisAlignment.spaceBetween....

您可以根據需要替換 mainAxisAlignment

我找到了更好的解決方案,就像下面的代碼:

if (Platform.isIOS)
                              IPetCustomCircleBtn(
                                constraintWidth: constraints.maxWidth * 0.13,
                                constraintHeight: constraints.maxHeight * 0.13,
                                iPetShapeBorder: CircleBorder(
                                  side: BorderSide(
                                    width: 2,
                                    color: Colors.black,
                                    style: BorderStyle.solid,
                                  ),
                                ),
                                iPetChildCard: IPetCustomIcon(
                                  ipFontIc: FontAwesomeIcons.apple,
                                  colour: Colors.black,
                                ),
                                iPetIconColor: Colors.black,
                                iPetFillColor: Colors.white,
                              ),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM