Flutter singlechildscrollview布局错误

问题描述 投票:0回答:1

我编写了如下所示的简单屏幕。 然而 singlechildscollview 列隐藏了上面的 +/- 按钮。 为什么会出现这种症状呢?我该如何解决它? SingleChildScrollView Error

我的开发情况如下

  • 安卓:2024.1.1
  • 颤动: Flutter 3.22.2 • 通道稳定 • https://github.com/flutter/flutter.git 框架 • 修订版 761747bfc5(5 周前) • 2024-06-05 22:15:13 +0200 发动机 • 修订版 edd8546116 工具 • Dart 3.4.3 • DevTools 2.34.3
  • 手机:z-flip3,版本14
PopScope(
      canPop: false,
      onPopInvoked: _customPopFunction,
      child: SafeArea(
        child: Scaffold(
          body: Column(
            mainAxisSize: MainAxisSize.max,
            children: [
              Row(
                children: [
                  ButtonSpamMain(addOrNOt: true, onTap: _tabTopButtonHandler,),
                  ButtonSpamMain(addOrNOt: false, onTap: _tabTopButtonHandler,),
                ],
              ),
              Row(
                children: [
                  Expanded(child: Container(height: 70, color: Colors.grey, child: Center(
                    child: Text(
                      showSpamList ? "스팸 처리된 목록" : "현재 메시지 목록", style: TextStyle(fontSize: 20),
                    ),
                  ),),)
                ],
              ),
              Text(_smsMessage),
              Expanded(
                flex: 1,
                child: SingleChildScrollView(
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      ...List.generate(((_messages.length) > 10 ?
                          intShowMessageNumber * 10
                          : _messages.length) ,
                              (index) {
                                var message = _messages[index];
                                return ListMessage(
                                  address: message['address'],
                                  body: message['body'],
                                  date: _formatDate(message['date']),
                                  id: message['id'],
                                  showCheckOrNot: showCheckOrNot,
                                  selected: _selectedIds.contains(message['id']) ,
                                  onTap: () => showCheckOrNot ?
                                    _tabListTrueHandler(message['id'])
                                    : _tabListFalseHandler(message['address'], message['body'], _formatDate(message['date'])),
                                  onLongPress: _longPressListHandler,
                                );
                              },
                            ),
                      IconButton(
                        icon: Icon(Icons.add_circle_outline, size: 30,),
                        onPressed: () {
                          setState(() {
                            intShowMessageNumber++;
                          });
                        },
                      ),
                      SizedBox(height: 20,)
                    ],
                  ),
                ),
              ),
              Row(
                children: [
                  Expanded(
                    child: Container(
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.only(topLeft: Radius.circular(10), topRight: Radius.circular(10)),
                        color: showSpamList ? GREEN_BBDD : RED_FA9B,
                      ),
                      height: 120,
                      child: Center(child: Text(showSpamList ? '스팸 설정하기' : '스팸 취소하기', style: TextStyle(color: Colors.white, fontSize: 24),)),
                    ),
                  ),
                ],
              )
            ],
          ),
        ),
      ),
    );

我只想像普通的 singlechildscrollview 一样工作。 上部按钮不得隐藏。

android flutter android-layout singlechildscrollview
1个回答
0
投票

使用 Stack 并使用 SingleChildScrollView 包装列(其子窗口小部件应该是可滚动的)。将这些按钮包装在 Positioned 小部件中(设置这些属性 top:0 , left:0 , right:0 )。尝试一下这个方法。

© www.soinside.com 2019 - 2024. All rights reserved.