我的帶有 Flutter 的 Material TextField 看起來像這樣:

從此代碼(用于電子郵件 TextField):
Container(
decoration: BoxDecoration(
color: AppColors.primary,
borderRadius: BorderRadius.circular(20),
),
child: TextField(
cursorColor: Colors.black,
controller: _emailController,
autocorrect: false,
textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
prefixIcon: Icon(
Icons.email,
color: AppColors.primaryPurple,
),
border: InputBorder.none,
errorText: _emptyEmail ? AppStrings.errorEmail : null,
hintText: AppStrings.email,
),
),
),
問題是在顯示錯誤時,會發生這種行為:

有沒有辦法解決這個問題(所以錯誤在 TextField 下方而不是擴展它)?
uj5u.com熱心網友回復:
您正在為容器使用裝飾,這就是在框中顯示文本錯誤的原因。您可以將 TextField 裝飾為:
TextField(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(15)
),
filled: true,
fillColor: Colors.blue.shade100,
),
),
只需洗掉容器的顏色并在 TextField 中使用填充
uj5u.com熱心網友回復:
父容器必須具有相同的視圖背景顏色和文本欄位的主要顏色。嘗試這個:
Container(
decoration: BoxDecoration(
color: backgroundColor, // <--- change this
borderRadius: BorderRadius.circular(20),
),
child: TextField(
cursorColor: Colors.black,
controller: _emailController,
autocorrect: false,
textAlignVertical: TextAlignVertical.center,
decoration: InputDecoration(
filled: true, // <-- add filled
fillColor: AppColors.primary, // <--- and this
prefixIcon: Icon(
Icons.email,
color: AppColors.primaryPurple,
),
border: InputBorder.none,
errorText: _emptyEmail ? AppStrings.errorEmail : null,
hintText: AppStrings.email,
),
),
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314883.html
上一篇:為什么notifyListeners()不更新消費者?
下一篇:顫振中的空安全
