簡體   English   中英

我正在嘗試將我的 Column 小部件包裝在 SingleChildScrollView 但無法

[英]I am trying to wrap my Column widget in a SingleChildScrollView but not able to

由於溢出,我試圖將列小部件包裝在單個子滾動視圖中。 但是當我試圖包裝它時,我收到了諸如

RenderFlex 子項具有非零彈性,但傳入的高度約束是無界的。

RenderBox 未布置:RenderFlex#dc736 relayoutBoundary=up12 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE 'package:flutter/src/rendering/box.dart':斷言失敗:第 1930 行 pos 12:'hasSize'

我可以做些什么來防止我的應用程序中的像素溢出? 這是我的代碼:

return Scaffold(
          appBar: AppBar(
            title: Text('Edit your pet`s details'),
            backgroundColor: Color.fromRGBO(101, 69, 112, 1.0),
          ),
            body: Container(
                child: Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Column(
                    children: <Widget> [
                      Row(
                        children: <Widget>[
                          Expanded(
                              child: TextFieldWidget(
                                controller: _petNameController,
                                helperText: "Pet's Name",
                              )),
                        ],
                      ),
                      Padding(
                        padding: const EdgeInsets.only(left: 50.0, right: 50.0),
                        child: Divider(
                          color: Colors.grey,
                          thickness: 0.5,
                        ),
                      ),
                      Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: <Widget>[
                          SizedBox(height: 60.0,),
                          Text(
                            "$_petName is a $_petGender. Update gender",
                            style: TextStyle(
                              fontSize: 20.0,
                              fontWeight: FontWeight.w400,
                            ),
                          )
                        ],
                      ),
                      Expanded(
                        child: GridView.count(
                          crossAxisCount: 2,
                          primary: false,
                          scrollDirection: Axis.vertical,
                          children: List.generate(petGenders.length, (index) {
                            return GestureDetector(
                                child: Padding(
                                  padding: const EdgeInsets.all(16.0),
                                  child: Card(
                                    shape: RoundedRectangleBorder(
                                        borderRadius: BorderRadius.circular(12.0)),
                                    color:
                                    selectedIndex == index ? primaryColor : null,
                                    child: Column(
                                      mainAxisAlignment: MainAxisAlignment.center,
                                      children: <Widget>[
                                        petGenders[petKeys[index]],
                                        SizedBox(
                                          height: 15.0,
                                        ),
                                        Text(
                                          petKeys[index],
                                          style: TextStyle(
                                              color: selectedIndex == index
                                                  ? Colors.white
                                                  : null,
                                              fontSize: 18.0,
                                              fontWeight: FontWeight.w600),
                                        ),
                                      ],
                                    ),
                                  ),
                                ),
                                onTap: () {
                                  setState(() {
                                    widget.pet.gender = petKeys[index];
                                    selectedIndex = index;
                                  });
                                });
                          }),
                        ),
                      ),

錯誤來自您的Column包含一個Extended小部件,它強制使用最大垂直空間。 SingleScrollChildView可以使用的垂直空間沒有限制。

結果是你有一個試圖占據無限垂直空間的小部件。

你怎么能解決這個問題? 要么刪除Extended小部件,要么刪除SingleScrollChildView小部件。 或者,您也可以用另一個具有已定義大小或約束的小部件(如具有heightwidth屬性的Container )包裝您的Extended小部件。

暫無
暫無

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

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