为什么在DropdownButton中重音符号损坏?

时间:2019-05-29 14:52:21

标签: flutter dart character-encoding dropdown

我正在使用一个下拉列表,要求用户选择一个值。文本为法语,因此带有重音字符。

问题在于这些字符以默认字体显示,而不是我的自定义字体。它仅在DropdownButton中发生。

如下所示,正确显示了Text()对象(不在DropdownButton内)中的重音。

Issue illustrated

我在Google和Stackoverflow上都找不到关于此的任何内容。

这是字符串列表:

static final List<String> answers = [
    [
      'Je perds mes cheveux, je veux traiter la chute et gagner en densité',
      /* ... */
      'Mes cheveux sont colorés ou méchés, je veux entretenir leur éclat',
      /* ... */
    ]
  ];

这是DropDownButton代码:

return DropdownButton<String>(
      /* ... */
      style: TextStyle(
        fontFamily: 'Arapey', // This is the font I use
        fontStyle: FontStyle.normal,
        color: Colors.black,
        fontSize: 15,
      ),
      /* ... */
      items: answers.map<DropdownMenuItem<String>>((String value) {
        // This is how I fill the list
        return DropdownMenuItem<String>(
          value: value,
          child: Text(value), // This is where I define the text to display
        );
      }).toList(),
    );

带重音符号的字符应与我的自定义字体一起显示。

1 个答案:

答案 0 :(得分:0)

您需要在文本小部件中添加文本样式,以便在其中定义要显示的文本

return DropdownButton<String>(
      /* ... */
      style: TextStyle(
        fontFamily: 'Arapey', // This is the font I use
        fontStyle: FontStyle.normal,
        color: Colors.black,
        fontSize: 15,
      ),
      /* ... */
      items: answers.map<DropdownMenuItem<String>>((String value) {
        // This is how I fill the list
        return DropdownMenuItem<String>(
          value: value,
          child: Text(value,
             style: TextStyle(
             fontFamily: 'Arapey', // This is the font I use
             fontStyle: FontStyle.normal,
             color: Colors.black,
             fontSize: 15,
             ),
          ), // This is where I define the text to display
        );
      }).toList(),
    );