![](/img/trans.png)
[英]How to specify disabledTextColor when migrating from FlatButton to TextButton
[英]How to convert a "FlatButton" to "TextButton" in Flutter?
我得到以下代碼:
FlatButton.icon(
minWidth: double.infinity,
padding: EdgeInsets.symmetric(
vertical: kDefaultPadding,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
color: kPrimaryColor,
onPressed: () {},
icon: WebsafeSvg.asset("assets/Icons/Edit.svg", width: 16),
label: Text(
"New message",
style: TextStyle(color: Colors.white),
),
).addNeumorphism(
topShadowColor: Colors.white,
bottomShadowColor: Color(0xFF234395).withOpacity(0.2),
),
似乎FlatButtun
現在已被棄用,我必須將其轉換為TextButton
但是當我嘗試這樣做時,它會給我minWith
參數錯誤。 當我嘗試用ConstrainedBox
包裝它時,我得到了padding
形狀等的其他錯誤。
我不知道如何讓這段舊代碼按預期工作?
正如我所評論的,您不能只是將TextButton.icon
FlatButton.icon
按鈕中的更改打破了對 Flutter 所做的更改:
Flutter 添加了一組新的基本材料按鈕小部件和主題。原來的類已被棄用,最終將被刪除。 總體目標是使按鈕更靈活,並且更容易通過構造函數參數或主題進行配置。
因此,要解決您的問題,您必須編寫自己的小部件以接近FlatButton.icon
。
對於您的示例,您可以使用Padding
小部件進行填充,使用SizedBox
來設置寬度。 對於圓角,您可以使用style
屬性。
使用TextButton.icon
你的按鈕代碼看起來像這樣:
SizedBox(
width: double.infinity,
child: Padding(
padding: EdgeInsets.symmetric(
vertical: kDefaultPadding,
child: TextButton.icon(
//rounded corners
style: ButtonStyle(
shape: MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
),
),
),
onPressed: () {},
icon: WebsafeSvg.asset("assets/Icons/Edit.svg", width: 16),
label: Text(
"New message",
style: TextStyle(color: Colors.white),
),
),
),
))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.