首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >listView和行视图创建问题

listView和行视图创建问题
EN

Stack Overflow用户
提问于 2021-03-26 08:39:18
回答 1查看 686关注 0票数 0

我的ListView可以在没有行代码的情况下正常工作,但是我需要在listView的最后一个元素下放置一个textfield和一个按钮。都在同一高度。所以我才想要用Row。但是如果我试图在我的listView下写它并启动这个应用程序,我什么也看不到,甚至listView也看不见。作为一个错误,它只向我报告:

相关的导致错误的小部件是: file:///Users/apple/Desktop/Work%202021/toduba-merchant/lib/tabs/home_tab.dart:95:22,当异常被抛出时,这是堆栈:#0 (package:flutter/src/rendering/viewport.dart:649:25) #1 RenderViewportBase.paint (package:flutter/src/rendering/viewport.dart:641:7) #2 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7) #3 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:140:11) 4 PaintingContext.repaintCompositedChild (包:颤振/src/rendering/object.dart:100:5)触发异常时正在处理以下RenderObject : RenderViewport#ba090 .需要复合..。parentData:(可以使用大小) ..。约束: BoxConstraints(w=375.0,h=474.9)层: OffsetLayer#32030分离.发动机层: Null#007db .抵销:抵销(0.0,0.0)尺寸:尺寸(375.0,474.9) .axisDirection:下来..。crossAxisDirection:对..。偏移量:ScrollPositionWithSingleContext#d8a7b(偏移量: 0.0,范围: null..null,视窗: 474.9,ScrollableState,BouncingScrollPhysics -> RangeMaintainingScrollPhysics,IdleScrollActivity#f75ff,ScrollDirection.idle)锚: 0.0 RenderObject: RenderViewport#ba090需要组合parentData:(可以使用大小)约束: BoxConstraints(w=375.0,h=474.9)层: OffsetLayer#32030分离引擎层: Null#007db偏移:偏移量:大小(375.0,474.9) axisDirection:向下偏移:ScrollPositionWithSingleContext#d8a7b(偏移: 0.0,范围: null..null,视图端口: 474.9,ScrollableState,BouncingScrollPhysics -> RangeMaintainingScrollPhysics,IdleScrollActivity#f75ff,RangeMaintainingScrollPhysics)锚: 0.0 .中心儿童: RenderSliverPadding#7222a relayoutBoundary=up1需要-油漆.需要复合..。parentData: paintOffset=Offset(0.0,0.0) (可以使用大小)约束: SliverConstraints(AxisDirection.down、GrowthDirection.forward、ScrollDirection.idle、scrollOffset: 0.0、remainingPaintExtent: 474.9、crossAxisExtent: 375.0、crossAxisDirection: AxisDirection.right、viewportMainAxisExtent: 474.9、remainingCacheExtent: 724.9、cacheOrigin: 0.0)几何学:零。填充: EdgeInsets.all(20.0) .textDirection: ltr .孩子: RenderSliverList#9d74e relayoutBoundary=up2需要-油漆.需要复合..。parentData: paintOffset=Offset(0.0,0.0) (可以使用大小)约束: SliverConstraints(AxisDirection.down、GrowthDirection.forward、ScrollDirection.idle、scrollOffset: 0.0、remainingPaintExtent: 454.9、crossAxisExtent: 335.0、crossAxisDirection: AxisDirection.right、viewportMainAxisExtent: 474.9、remainingCacheExtent: 704.9、cacheOrigin: 0.0)几何学:零。目前还活着的儿童:0到3.索引0的孩子: RenderIndexedSemantics#3b488 relayoutBoundary=up3 relayoutBoundary=up3油漆.需要复合..。parentData: index=0;layoutOffset=0.0 (可以使用大小).约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)语义边界..。尺寸:尺寸(335.0,29.0) .指数:0。孩子: RenderRepaintBoundary#8cd41 relayoutBoundary=up4需要-油漆.需要复合..。parentData:(可以使用大小) ..。约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)尺寸:尺寸(335.0,29.0) .有用率:尚未收集任何指标(从未绘制).有索引1的孩子: RenderIndexedSemantics#c3e1f relayoutBoundary=up3需要-油漆.需要复合..。parentData: index=1;layoutOffset=29.0 (可以使用大小).约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)语义边界..。尺寸:尺寸(335.0,260.0) .指数:1.孩子: RenderRepaintBoundary#16c99 relayoutBoundary=up4需要-油漆.需要复合..。parentData:(可以使用大小) ..。约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)尺寸:尺寸(335.0,260.0) .有用率:尚未收集任何指标(从未绘制).有索引2的孩子: RenderIndexedSemantics#967b1 relayoutBoundary=up3需要-油漆.需要复合..。parentData: index=2;layoutOffset=289.0 (可以使用大小).约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)语义边界..。尺寸:尺寸(335.0,22.0)。索引:2.孩子: RenderRepaintBoundary#348b5 relayoutBoundary=up4需要-油漆.需要复合..。parentData:(可以使用大小) ..。约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)尺寸:尺寸(335.0,22.0)。有用率:尚未收集任何指标(从未绘制).有索引3的孩子: RenderIndexedSemantics#047b6 relayoutBoundary=up3需要-油漆.需要复合..。parentData: index=3;layoutOffset=311.0 (可以使用大小).约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)语义边界..。尺寸:失踪..。指数:3.孩子: RenderRepaintBoundary#af13c relayoutBoundary=up4需要-油漆.需要复合..。parentData:(可以使用大小) ..。约束: BoxConstraints(w=335.0,0.0<=h<=Infinity)尺寸:失踪..。有用性比率:尚未收集任何指标(从未绘制)

代码语言:javascript
复制
return Container(
          color: appColors.primaryColor,
          child: ListView(
            primary: false,
                  children: [
                    // TITOLO
                    Align(
                      alignment: Alignment.center,
                        child: Container(
                        child: Text(
                                localization.showQR,
                                style: Theme.of(context).primaryTextTheme.headline5.copyWith(
                                  color: appColors.green,
                                  fontWeight: FontWeight.bold,
                                ),
                              ),
                            ),
                        ),
                    Align(
                      alignment: Alignment.center,
                        child: Container(
                                child: qrCodeHolder
                            ),
                        ),
                    Align(
                      alignment: Alignment.center,
                        child: Container(
                              child: AutoSizeText(
                                localization.home_subLabel,
                                textAlign: TextAlign.center,
                                maxLines: 1,
                                style: Theme.of(context).primaryTextTheme.headline5.copyWith(
                                  color: appColors.green,
                                  fontWeight: FontWeight.bold,
                                ),
                              ),
                            ),
                        ),
                    Positioned(
                      //top: size.height * .02,
                      //right: size.width * .02,
                      child: Row(
                        children: [
                            TextField(
                              inputFormatters: [
                                new LengthLimitingTextInputFormatter(7),
                              ],
                              decoration: InputDecoration(
                                filled: true,
                                fillColor: Colors.white,
                                focusedBorder: OutlineInputBorder(
                                  borderSide: BorderSide(color: Colors.white),
                                ),
                                enabledBorder: UnderlineInputBorder(
                                  borderSide: BorderSide(color: Colors.white),
                                ),
                              ),
                              textAlign: TextAlign.center,
                              style: TextStyle(
                                fontSize: 18.0,
                                color: Colors.black,
                              ),
                            ),
                          IconButton(
                            icon: Image.asset("assets/images/send.png"),
                            onPressed: () => showDialog(context: context, builder: (_) => PaymentDialog()),
                          ),
                          Text("dfjbsdifbsdf"),
                        ]
                      ),
                    ),
                  ],
              padding: EdgeInsets.all(20.0),
            ),
          );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-26 08:45:50

您需要将您的TextField包装在一个扩展小部件或一个宽度有限的容器中。这是因为Row假定它可以使用最大宽度,而TextField和TextFormField小部件默认情况下尝试获取最大宽度。

通过把它们放在一起,你就会得到你正在犯的错误。

对于TextField,在一行中,必须用ExpandedFlexible包装。

代码语言:javascript
复制
Row(
 children: [
  Expanded(
   child: TextField () 
  )
])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66813508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档