在颤动中,底部超载了 248 像素

Posted

技术标签:

【中文标题】在颤动中,底部超载了 248 像素【英文标题】:Bottom overloaded by 248 pixels in flutter 【发布时间】:2020-08-09 23:26:08 【问题描述】:

您好,我正在尝试创建一个搜索页面。它对我来说很好。当我打开键盘时,它给了我一个错误底部超载了 248 像素。 This is how its shown on the image

我对如何使用 ScrollView 感到困惑 谁能帮忙演示一下?


这是我的代码:

Widget _usersListView() 
   return StreamBuilder<List<Contact>>(
     stream: DBService.instance.getUsersInDB(_searchText),
     builder: (_context, _snapshot) 
       var _usersData = _snapshot.data;
       if (_usersData != null) 
         _usersData.removeWhere((_contact) => _contact.id == _auth.user.uid);
       
       return _snapshot.hasData
           ? Container(
               height: this.widget._height * 0.75,
               child: ListView.builder(
                 itemCount: _usersData.length,
                 itemBuilder: (BuildContext _context, int _index) 
                   var _userData = _usersData[_index];
                   var _currentTime = DateTime.now();
                   var _recepientID = _usersData[_index].id;
                   var _isUserActive = !_userData.lastseen.toDate().isBefore(
                         _currentTime.subtract(
                           Duration(hours: 1),
                         ),
                       );
                   return ListTile(
                     onTap: () 
                       DBService.instance.createOrGetConversartion(
                           _auth.user.uid, _recepientID,
                           (String _conversationID) 
                         NavigationService.instance.navigateToRoute(
                           MaterialPageRoute(builder: (_context) 
                             return ConversationPage(
                                 _conversationID,
                                 _recepientID,
                                 _userData.name,
                                 _userData.image);
                           ),
                         );
                       );
                     ,
                     title: Text(_userData.name),
                     leading: Container(
                       width: 50,
                       height: 50,
                       decoration: BoxDecoration(
                         borderRadius: BorderRadius.circular(100),
                         image: DecorationImage(
                           fit: BoxFit.cover,
                           image: NetworkImage(_userData.image),
                         ),
                       ),
                     ),
                     trailing: Column(
                       mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                       mainAxisSize: MainAxisSize.max,
                       crossAxisAlignment: CrossAxisAlignment.end,
                       children: <Widget>[
                         _isUserActive
                             ? Text(
                                 "Active Now",
                                 style: TextStyle(fontSize: 15),
                               )
                             : Text(
                                 "Last Seen",
                                 style: TextStyle(fontSize: 15),
                               ),
                         _isUserActive
                             ? Container(
                                 height: 10,
                                 width: 10,
                                 decoration: BoxDecoration(
                                   color: Colors.green,
                                   borderRadius: BorderRadius.circular(100),
                                 ),
                               )
                             : Text(
                                 timeago.format(
                                   _userData.lastseen.toDate(),
                                 ),
                                 style: TextStyle(fontSize: 15),
                               ),
                       ],
                     ),
                   );
                 ,
               ),
             )
           : SpinKitWanderingCubes(
               color: Colors.blue,
               size: 50.0,
             );
      ,
     );
    
   

【问题讨论】:

【参考方案1】:

使用 Singlechildscrollview 小部件扭曲您的父小部件 例如:

 body: SingleChildScrollView(
    child: Container(
     put other widgets here
    ))

【讨论】:

【参考方案2】:

您必须如下设置 Scaffold 属性。

resizeToAvoidBottomPadding: false,

【讨论】:

【参考方案3】:

我建议您可以将整个正文内容包裹在 Singlechildscrollview 小部件中以避免此问题。您可以参考Singlechildscrollview 这里

【讨论】:

以上是关于在颤动中,底部超载了 248 像素的主要内容,如果未能解决你的问题,请参考以下文章

[兴趣使然]用python在命令行下画jandan像素超载鸡

移动到其他页面时无法保持底部导航栏颤动

我在像素溢出的颤动中遇到此错误。任何解决方案。附上溢出的图片

一个 RenderFlex 在底部溢出了 729 个像素。在 SingleChildScrollView

一个 RenderFlex 在底部问题上溢出了 40 个像素

像素完美UILabel