在此Flutter示例中,格式化文本的最佳方法是什么?

时间:2018-12-23 18:04:00

标签: android dart flutter

我有一张卡,可以点击打开或关闭DND。目前,在卡上,我有一串文字,显示“ DND ON”或“ DND OFF”。我想要实现的是在“ DND ON”下方添加较小的字体和斜体:““警报,媒体,触摸声音”。

我的裸露代码:

            Card(
          color: Color.fromARGB(255, 76, 175, 80),
          elevation: 5.0,
          child: InkWell(
            splashColor: Colors.blueGrey,
            onTap: () {
              setState(() {
                pressed = !pressed;
              });
              pressed ? _dndOn() : _dndOff();
            },
            child: Center(
              child: Text(
                pressed ? ('DND ON') : ('DND OFF'),
                style: TextStyle(
                  color: Colors.white,
                  fontSize: 25.0,
                ),
              ),
            ),
          ),
        ),

我尝试的方法:我尝试使用TextTheme在RichText中定义我的字符串,并创建具有各种样式的文本列。每次出现错误,例如“类型'列'不是类型'String'的子类型”或“类型'RichText'不是类型'String'的子类型等

您对我如何实现自己想要的东西有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您不能使用column widget作为“文本”小部件的text属性。您需要以一种方式使用它来定义要保留的子级列表,在这种情况下,这是文本小部件的列表。

Card(
  color: Color.fromARGB(255, 76, 175, 80),
  elevation: 5.0,
  child: InkWell(
    splashColor: Colors.blueGrey,
    onTap: () {
      setState(() {
        pressed = !pressed;
      });
      pressed ? _dndOn() : _dndOff();
    },
    child: Center(
      child: Column(
        children: [
          Text(
            pressed ? 'DND ON' : 'DND OFF',
            style: TextStyle(
              color: Colors.white,
              fontSize: 25.0,
            ),
          ),
          Text(
            'Alarms, Media, Touch Sounds',
            style: TextStyle(
              color: Colors.white,
              fontSize: 16.0,
            ),
          ),
        ],
      ),
    ),
  ),
),