大家好,我正在尝试将 Column 转换为可滚动 我尝试在 SingleChildScrollView 中扭曲 Column(移除所有展开的小部件)但出现错误我将列转换为 ListView(移除所有展开的小部件)但我得到一个错误。
是否有任何解决方案可以保留扩展小部件?
所以有人可以帮我吗?请
这是我的代码
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false,
floatingActionButton: buttonTheme,
drawer: SideMenu(),
appBar: AppBar(
actions: [
Padding(
padding: EdgeInsets.all(8.0),
child: DropdownButton(
underline: SizedBox(),
icon: Icon(
Icons.language,
color: Colors.white,
),
items: AppLanguage.languageList()
.map<DropdownMenuItem<AppLanguage>>(
(lang) => DropdownMenuItem(
value: lang,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [Text(lang.flag), Text(lang.name)],
),
),
)
.toList(),
onChanged: (AppLanguage language) {
_changeLanguage(language);
},
),
)
],
centerTitle: true,
//automaticallyImplyLeading: false,
title: Text(
getTranslation(context, 'main_app_bar'),
style: TextStyle(
fontSize: 20,
),
),
),
body: Center(
child: SafeArea(
child: Column(
children: <Widget>[
Expanded(
flex: 1,
child: WeatherWidget(
deglaPalmsWeatherData: widget.deglaPalmsWeather,
),
),
Expanded(
flex: 1,
child: Column(
children: [
Expanded(
flex: 2,
child: Row(
children: [
SizedBox(
width: 20,
),
Expanded(
flex: 1,
child: MapWidget(),
),
SizedBox(
width: 10,
),
Expanded(
flex: 1,
child: ServicesWidget(),
),
SizedBox(
width: 20,
)
],
),
),
Expanded(
flex: 2,
child: Row(
children: [
SizedBox(
width: 20,
),
Expanded(
flex: 1,
child: InfoWidget(),
),
SizedBox(
width: 10,
),
Expanded(
flex: 1,
child: BusWidget(),
),
SizedBox(
width: 20,
),
],
),
),
Expanded(
flex: 1,
child: SoonWidget(),
),
],
),
),
DCCopyRights(),
],
),
),
),
bottomNavigationBar: Container(
height: bannerHeight,
),
);
}
答案 0 :(得分:0)
我找到了一个解决方案,它对我来说效果很好,我使用了带有 scrollDirection 和 pageSnapping 的 PageView
PageView(
scrollDirection: Axis.vertical,
pageSnapping: false,
children: [Column(),
Column()])
我不得不重新调整小部件以适应所有屏幕,但这对我来说效果很好,因为我添加了很多小部件,现在它看起来像一个可滚动的列。 我知道这不是最好的解决方案,但它做了我想要的。