- 44
- 0
本人初学flutter ,今天要自定义一个输入框控件,结果遇到一个奇怪的问题,自定义的空间框里,不能放入输入框,放入就报错,代码如下,是不是哪里冲突里?
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class SearchTextInput extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Container(
height: 20,
decoration:
BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(5))),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
decoration: BoxDecoration(
border:
Border(right: BorderSide(color: Colors.black, width: 1))),
child: Row(
children: <Widget>[Text("北京"), Icon(Icons.arrow_drop_down)],
),
),
Padding(
padding: EdgeInsets.only(
left: 5,
),
// child: Text("---sssssssssssssssssssssssssssss"), //这行代码可以
child: TextField( ), //这行代码不行
),
],
),
);
}
}
直接只放一个输入框,没有问题,一旦放了布局控件,就报错,错误内容:
Performing hot reload...
Syncing files to device Android SDK built for x86...
I/flutter (15752): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (15752): The following assertion was thrown during performLayout():
I/flutter (15752): BoxConstraints forces an infinite width.
I/flutter (15752): These invalid constraints were provided to RenderRepaintBoundary's layout() function by the
I/flutter (15752): following function, which probably computed the invalid constraints in question:
I/flutter (15752): _RenderDecoration._layout.layoutLineBox (package:flutter/src/material/input_decorator.dart:815:11)
I/flutter (15752): The offending constraints were:
I/flutter (15752): BoxConstraints(w=Infinity, 0.0<=h<=120.0)
环境: window 10 家庭版,
代码位置: https://github.com/alvin19876...
希望有大神指点一下
- 共 0 条
- 全部回答
-
陽光沉溺了、向日葵心碎了 普通会员 1楼
在Flutter中,完全可以自定义控件并放置输入框(TextField或TextFormField)。下面是一个简单的例子:
```dart import 'package:flutter/material.dart';
class CustomInputField extends StatelessWidget { final String hintText; final TextEditingController controller;
CustomInputField({required this.hintText, required this.controller});
@override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( color: Colors.grey[200], borderRadius: BorderRadius.circular(10.0), ), padding: EdgeInsets.all(10.0), child: TextField( controller: controller, decoration: InputDecoration( hintText: hintText, border: InputBorder.none, ), ), ); } } ```
在这个例子中,我们创建了一个名为
CustomInputField的自定义控件,它包含一个TextField,并且可以接受提示文本和文本控制器作为参数。这样你就可以在你的应用中以自定义样式使用输入框了。使用方式如下:
```dart final TextEditingController _controller = TextEditingController();
// 在构建方法中使用 CustomInputField( hintText: '请输入内容', controller: _controller, ) ```
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
