我编写了如下所示的简单屏幕。 然而 singlechildscollview 列隐藏了上面的 +/- 按钮。 为什么会出现这种症状呢?我该如何解决它?
我的开发情况如下
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 一样工作。 上部按钮不得隐藏。
使用 Stack 并使用 SingleChildScrollView 包装列(其子窗口小部件应该是可滚动的)。将这些按钮包装在 Positioned 小部件中(设置这些属性 top:0 , left:0 , right:0 )。尝试一下这个方法。