Flutter文字各种控件

本文详细介绍了如何在Flutter中使用各种文本控件,包括不同颜色、装饰、字体、字号及间距的设置,帮助开发者深入理解并实践文本呈现技巧。

Flutter文字各种控件




import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main(){
runApp(MaterialApp(title: "文本",home: TextDome(),));
}
class TextDome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar:  AppBar(
        title: Text("文本"),
      ),
      body: Column(
        children: [
          Text("红色+黑色删除+25",
            style: TextStyle(color:const Color(0xffff0000),
            decoration: TextDecoration.lineThrough,
              decorationColor: const Color(0xff000000),
              fontSize: 25.0
            )
          ),
          Text("橙色+下滑线+24号",
              style: TextStyle(color:const Color(0xffff9900),
                     fontFamily: "serif"
              )
          ),
          Text("monospace字体+加粗",
              style: TextStyle(
                  fontSize: 24.0,
                  fontFamily: "monospace"
                  ,fontWeight: FontWeight.bold
              )
          ),
          Text("天蓝+25+2行跨度理",
              style: TextStyle(
                  fontSize: 24.0,
                color: const Color(0xff4a86e8),
                height: 2.0
              )
          ),
          Text("24+2间隔",
              style: TextStyle(
                  fontSize: 24.0,
                letterSpacing: 30.0
              )
          ),
        ],
      ),
    );
  }
}

在这里插入图片描述
2.Flutter小控件
在这里插入图片描述

### Flutter 中实现单选功能的控件 #### Radio 控件 `Radio` 是用于创建 Material Design 风格的单选按钮的小部件。通过设置 `value` 和 `groupValue` 来控制哪个选项被选中。 - **参数解释** - `value`: 此单选按钮表示的值(可以设定为 id 或者其他唯一标识符)。[^1] - `groupValue`: 当前这组单选按钮中的哪一个被选中,其值应与此处指定的一致才能显示为已选状态。 下面是一个简单的例子来展示如何使用 `Radio`: ```dart import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('Radio Example')), body: Center(child: MyStatefulWidget()), ), ); } } class MyStatefulWidget extends StatefulWidget { @override _MyStatefulWidgetState createState() => _MyStatefulWidgetState(); } class _MyStatefulWidgetState extends State<MyStatefulWidget> { int? _value; void onChanged(int? value) { setState(() { _value = value; }); } @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Radio<int>( value: 0, groupValue: _value, onChanged: onChanged, activeColor: Colors.blueAccent // 设置激活颜色 ), const Text('Option A'), ], ), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Radio<int>( value: 1, groupValue: _value, onChanged: onChanged, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap // 调整点击区域大小 ), const Text('Option B'), ], ) ], ); } } ``` #### RadioListTile 控件 对于更复杂的布局需求,比如想要给每个选项旁边加上文字描述或者其他 UI 组件,则可以选择使用 `RadioListTile` 小部件。它不仅包含了 `Radio` 的全部特性,还额外提供了更多定制化的可能性。 - **属性介绍** 除了继承自父类的一些通用样式外,还有几个特别重要的属性需要注意: - `title`, `subtitle`: 可以为列表项添加标题和副标题。 - `secondary`: 放置一个小图标或其他辅助视图于右侧位置。 以下是基于上述提到的功能构建的一个实例代码片段: ```dart // 延续上面的例子,在这里我们改用RadioListTile代替Radio Column( mainAxisAlignment: MainAxisAlignment.center, children: [ RadioListTile<int>( title: const Text('Option C'), subtitle: const Text('This is a subtext.'), secondary: Icon(Icons.check_circle), value: 2, groupValue: _value, onChanged: onChanged, selected: (_value == 2), // 是否高亮显示该项 controlAffinity: ListTileControlAffinity.trailing // 控制radio的位置,默认是在左边 ), ... ]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值