簡體   English   中英

如何更改 Flutter 中的默認前綴圖標主題?

[英]How to change default preffix icon theme in Flutter?

我有一個問題。 我使用 colorScheme 更改 TextField 中前綴圖標的顏色,但如何更改默認前綴圖標顏色。 我試圖以這種方式改變它

data: Theme.of(context).copyWith(
      iconTheme: Theme.of(context).iconTheme.copyWith(
          color: Colors.red,
      ),
      colorScheme: Theme.of(context).colorScheme.copyWith(
          primary: Colors.blue,
      ),
  ),

但這種方式行不通

如果你想要一個固定的圖標顏色,你可以使用這個:

TextField(
  decoration: InputDecoration(
    prefixIcon: Icon(Icons.done, color: Colors.green),
  ),
),

Github上有一個關於這個的問題

更新:

看到這個代碼

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  FocusNode _focus = FocusNode();

  //Define your default color  
  Color fieldColor = Colors.green;

  //Using focus node everytime the focus change the listener will change the 
  //color and call setState
  @override
  void initState() {
    super.initState();
    _focus.addListener(() {
      setState(() {
        fieldColor = _focus.hasFocus ? Colors.red : Colors.black;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: TextField(
          focusNode: _focus,
          decoration: InputDecoration(
            prefixIcon: Icon(Icons.done, color: fieldColor),
          ),
        ),
      ),
    );
  }
}

我能夠改變包裝TextField

Theme(
      data: Theme.of(context).copyWith(primaryColor: Colors.black),
      child: TextFormField(),
    );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM