【发布时间】:2020-10-11 02:53:27
【问题描述】:
我正在尝试构建一个注册屏幕,我在 adobe XD 上设计的概念是注册屏幕将在顶部中心有应用程序徽标,一张带有大约 3-4 个文本字段/区域的卡片,一个按钮底部中心。由于要填写多张卡片,我希望在中心有一个圆形页面指示器,以便用户更轻松地跟踪要填写的剩余数据,并且用户不必在单个屏幕上填写非常长的列表。
我试过的是 一个 SingleChildScrollView,其中有一列,该列具有要填写的第一个注册表单,其中的另一列具有带有页面指示器的按钮
Stack 和 pageviewbuilder 这在布局方面给了我最好的结果,但唯一的问题是,当使用键盘时,小部件会引发 renderFlew 溢出
现在是一个包含表单的列表视图和一个包含按钮和页面指示器的列
我需要的东西:
- 键盘不会导致表单出现问题
- 适用于多种屏幕尺寸的实用且一致的代码
我的最新代码
@override
Widget build(BuildContext context) {
List<Widget> registrationForms = [EmailRegistrationForm()];
return Scaffold(
backgroundColor: Theme.of(context).backgroundColor,
body: ListView(
children: <Widget>[
Align(alignment: Alignment.center, child: registrationForms[0]),
Container(
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 5),
child: InkWell(
child: Text("Already have an account? Login!"),
),
),
PrimaryStyledButton(text: "Next", onPress: () {}),
CirclePageIndicator(
currentPageNotifier: _currentPageNotifier,
itemCount: registrationForms.length,
selectedDotColor: Theme.of(context).accentColor,
)
],
),
),
],
));
}
预期结果
【问题讨论】:
-
并没有真正改变任何东西,并且展开后不能将列包装在列表视图中,如果展开与列和单子滚动视图一起使用,则会引发此错误 RenderFlex 子级具有非零弹性但传入高度限制是无限的。
-
尝试用 Flexible with fit:FlexFit.loose 包裹它
-
没有工作与展开时遇到的问题相同,因此我最终从列表视图中删除了该列,我将发布我的解决方案作为答案
-
在列内更改代码本身的结构时扩展/灵活的工作
标签: flutter dart flutter-layout