为什么我的线条不出来啊?
来源:4-5 输入框实用技巧与实战应用

keeper_it
2021-05-10
import 'package:bili_app/util/color.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
///登录输入框,自定义widget
class LoginInput extends StatefulWidget {
final String title;
final String hint;
final ValueChanged<String> onChanged;
final ValueChanged<bool> focusChanged;
final bool lineStretch;
final bool obscureText;
final TextInputType keyboardType;
const LoginInput(this.title, this.hint,
{Key key,
this.onChanged,
this.focusChanged,
this.lineStretch = false,
this.obscureText = false,
this.keyboardType})
: super(key: key);
@override
_LoginInputState createState() => _LoginInputState();
}
class _LoginInputState extends State<LoginInput> {
final _focusNode = FocusNode();
@override
void initState() {
super.initState();
//是否获取光标的监听
_focusNode.addListener(() {
print("Has focus: ${_focusNode.hasFocus}");
if (widget.focusChanged != null) {
widget.focusChanged(_focusNode.hasFocus);
}
});
}
@override
void dispose() {
_focusNode.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Row(
children: [
Container(
padding: EdgeInsets.only(left: 15),
width: 100,
child: Text(
widget.title,
style: TextStyle(fontSize: 16),
),
),
_input()
],
),
Padding(
padding: EdgeInsets.only(left: !widget.lineStretch ? 15 : 0),
child: Divider(
height: 1,
thickness: 0.5,
),
)
],
);
}
_input() {
return Expanded(
child: TextField(
focusNode: _focusNode,
onChanged: widget.onChanged,
obscureText: widget.obscureText,
keyboardType: widget.keyboardType,
autofocus: !widget.obscureText,
cursorColor: primary,
style: TextStyle(
fontSize: 16, color: Colors.black, fontWeight: FontWeight.w300),
//输入框的样式
decoration: InputDecoration(
contentPadding: EdgeInsets.only(left: 20, right: 20),
border: InputBorder.none,
hintText: widget.hint ?? '',
hintStyle: TextStyle(fontSize: 15, color: Colors.grey)),
));
}
}
写回答
1回答
-
从上述代码中发现,是因为设置了border: InputBorder.none,将border: InputBorder.none去掉在试试看。
00
相似问题