美文网首页
Flutter 之 ListTite (九十)

Flutter 之 ListTite (九十)

作者: maskerII | 来源:发表于2022-05-31 19:02 被阅读0次

    1. ListTile

      const ListTile({
        Key? key,
        this.leading,
        this.title,
        this.subtitle,
        this.trailing,
        this.isThreeLine = false,
        this.dense,
        this.visualDensity,
        this.shape,
        this.style,
        this.selectedColor,
        this.iconColor,
        this.textColor,
        this.contentPadding,
        this.enabled = true,
        this.onTap,
        this.onLongPress,
        this.mouseCursor,
        this.selected = false,
        this.focusColor,
        this.hoverColor,
        this.focusNode,
        this.autofocus = false,
        this.tileColor,
        this.selectedTileColor,
        this.enableFeedback,
        this.horizontalTitleGap,
        this.minVerticalPadding,
        this.minLeadingWidth,
      })
    
    ListTile 属性 介绍
    leading 左侧组件
    title 标题
    subtitle 副标题
    trailing 右侧组件
    isThreeLine 是否三行,默认为 false,设置为 true 时,subTitle 不可以为空,没啥作用
    dense 是否使用缩小布局
    visualDensity 紧凑程度,VisualDensity -4~4
    shape 形状,这里边缘颜色无效,再点击时阴影可以看出来效果
    style ListTile 样式 list 使用适合列表的标题字体,drawer 使用适合抽屉的标题字体
    selectedColor 选中时 组件颜色
    iconColor icon 颜色
    textColor 文本颜色
    contentPadding content 内间距
    enabled 是否可用,默认为 true,为false时 不可响应事件
    onTap 点击事件回调
    onLongPress 长按事件回调
    mouseCursor 鼠标光标
    selected 选中状态,默认为 false
    autofocus 自动聚焦,默认为 false
    tileColor ListTile 颜色
    selectedTileColor 选中时 ListTile颜色
    enableFeedback 是否给予按压反馈
    focusColor 聚焦颜色
    hoverColor 悬停颜色
    focusNode 焦点控制,Flutter 之 FocusNode (七十三)
    horizontalTitleGap 标题和左右组件的水平间隔
    minVerticalPadding 垂直方向 最小内边距
    minLeadingWidth 左侧组件 最小宽度

    2. ListTile 示例

    
    class MSListTileDemo extends StatelessWidget {
      const MSListTileDemo({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text("ListTileDemo")),
          body: SingleChildScrollView(
            child: Column(
              children: [
                ListTile(
                  leading: Icon(Icons.people), // 左侧组件
                  title: Text("标题"), // 标题组件
                  subtitle: Text("副标题"), // 副标题
                  trailing: Icon(Icons.search), // 右侧组件
                  isThreeLine: false, //  是否三行 默认false,为ture时 ,subtitle不可以为空
                  dense: false, // 是否使用缩小布局
                  visualDensity:
                      VisualDensity(horizontal: -1.0, vertical: -1.0), // 紧凑程度 -4~4
                  shape: RoundedRectangleBorder(
                      side: BorderSide(color: Colors.red),
                      borderRadius: BorderRadius.circular(8)), // 形状
                  style: ListTileStyle
                      .list, // ListTile 样式  list 使用适合列表的标题字体,drawer 使用适合抽屉的标题字体
                  selectedColor: Colors.cyan, // 选中时 组件颜色
                  iconColor: Colors.pink[200], // icon 颜色
                  textColor: Colors.black87, // 文本颜色
                  contentPadding: EdgeInsets.all(8), // 内容内边距
                  enabled: true, // 是否可用,默认为 true
                  onTap: () {
                    print("onTap 1");
                  }, // 单击事件 回调
                  onLongPress: () {
                    print("onLongPress 1");
                  }, // 长按事件回调
                  selected: false, // 是否选中
                  autofocus: false, // 是否自动聚焦
                  tileColor: Colors.amber[200], // ListTile颜色
                  selectedTileColor: Colors.yellow, // 选中时 ListTile颜色
                  enableFeedback: true, // 是否给予按压反馈
                  horizontalTitleGap: 16.0, // 标题和左右组件的水平间隔
                  minVerticalPadding: 6, // 垂直方向 最小内边距
                  minLeadingWidth: 20, // 左侧组件 最小宽度
                ),
                ListTile(
                  leading: Icon(Icons.question_mark), // 左侧组件
                  title: Text("Flutter"), // 标题组件
                  subtitle: Text(
                      "Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。 [5]  Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。Flutter已推出稳定的2.0版本"), // 副标题
                  trailing: Icon(Icons.search), // 右侧组件
                  isThreeLine: false, //  是否三行 默认false,为ture时 ,subtitle不可以为空
                  dense: false, // 是否使用缩小布局
                  visualDensity:
                      VisualDensity(horizontal: -1.0, vertical: -1.0), // 紧凑程度 -4~4
                  shape: RoundedRectangleBorder(
                      side: BorderSide(color: Colors.red),
                      borderRadius: BorderRadius.circular(8)), // 形状
                  style: ListTileStyle
                      .list, // ListTile 样式  list 使用适合列表的标题字体,drawer 使用适合抽屉的标题字体
                  selectedColor: Colors.cyan, // 选中时 组件颜色
                  iconColor: Colors.pink[200], // icon 颜色
                  textColor: Colors.black87, // 文本颜色
                  contentPadding: EdgeInsets.all(8), // 内容内边距
                  enabled: true, // 是否可用,默认为 true
                  onTap: () {
                    print("onTap 2");
                  }, // 单击事件 回调
                  onLongPress: () {
                    print("onLongPress 2");
                  }, // 长按事件回调
                  selected: true, // 是否选中
                  autofocus: false, // 是否自动聚焦
                  tileColor: Colors.amber[200], // Tile颜色
                  selectedTileColor: Colors.yellow, // 选中时 Tile颜色
                  enableFeedback: true, // 是否给予按压反馈
                  horizontalTitleGap: 16.0, // 标题和左右组件的水平间隔
                  minVerticalPadding: 6, // 垂直方向 最小内边距
                  minLeadingWidth: 20, // 左侧组件 最小宽度
                ),
              ],
            ),
          ),
        );
      }
    }
    
    
    image.png

    相关文章

      网友评论

          本文标题:Flutter 之 ListTite (九十)

          本文链接:https://www.haomeiwen.com/subject/wgzzprtx.html