
import 'package:flutter/material.dart';
void main() => runApp(Test());
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
routes: {
'/': (context) => ExampleScreen(),
},
);
}
}
class ExampleScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[200],
body: Center(
child: Container(
color: Colors.blue,
width: 70,
height: 70,
child: Center(
child: TextField(
controller: TextEditingController.fromValue(TextEditingValue.empty.copyWith(text: '8')),
autofocus: false,
style: Theme.of(context).primaryTextTheme.headline2!.copyWith(
color: Theme.of(context).colorScheme.onBackground,
),
textAlign: TextAlign.center,
textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(
borderSide: BorderSide(color: Theme.of(context).disabledColor),
borderRadius: BorderRadius.circular(8),
),
),
),
),
),
),
);
}
}
嘿,
我試圖在 TextField 中居中文本。如您所見,文本略微偏移到左上角。為了使文本居中,我還需要考慮其他事項嗎?
編輯:這與小部件樹的其余部分無關。您可以僅使用上面的代碼在 dartpad.dev 上重現此問題。
uj5u.com熱心網友回復:
在您使用時Container,
用 alignment: Alignment.center,
Container(
alignment: Alignment.center,
color: Colors.blue,
child: TextField(
controller: controller,
focusNode: focusNode,
autofocus: false,
style: theme.primaryTextTheme.headline4!.copyWith(
color: theme.colorScheme.onBackground,
),
textAlign: TextAlign.center,
textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
contentPadding: EdgeInsets.zero,
border: OutlineInputBorder(
borderSide: BorderSide(color: theme.disabledColor),
borderRadius: BorderRadius.circular(8),
),
),
),
),
更多關于容器級。
uj5u.com熱心網友回復:
將 2 更改為這樣的正確值
裝飾: InputDecoration( contentPadding: E??dgeInsets.only(left: 2),
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334723.html
標籤:扑
上一篇:將自定義小部件添加到FlutterTabBar的活動選項卡
下一篇:在構建方法中使用三元運算子
