Flutter如何使用ListTile Threeline

时间:2018-11-29 12:53:19

标签: dart flutter

使用ListTile ThreeLines时会颤动,我不知道如何使用ThreeLines

    import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('ddd'),
        ),
        body:Container(
        child: Column(
          children: <Widget>[
            ListTile(
              isThreeLine: true,
              leading: Icon(Icons.event_note),
              title: Text('Title 1'),
              // subtitle: Text('Title2'),
              subtitle: Column(

                children: <Widget>[
                  Text('Titile2'),
                  Text('Title 3'),
                  Text('Title 4'),
                  Text('and so on')
                ],
              ),

            )
          ],
        ),
      ) ,
      ),

    );
  }
}

当我删除isThreeLines时,代码还可以

ListTile

谢谢

3 个答案:

答案 0 :(得分:4)

As from the docs:

  

subtitle的值(可选)将占用空间   分配给另一行文本,如果isThreeLine则分配两行   是真的。

这基本上意味着subtitle中的ListTile拥有更多空间来容纳长度超过一行的文本:

ThreeLine Demo

答案 1 :(得分:1)

默认情况下,颤振中的ListTile只能显示2行。标题和子标题。如果要显示第三行文本,则isThreeLine设置为true,并且可以允许出现另一行。字幕将负责提供第三行文字。可以预期的是,如果isThreeLine设置为true,则字幕应为非null。

答案 2 :(得分:0)

默认情况下,flutter 中的 ListTile 只能显示 2 行。标题和副标题。如果要显示第三行文本,则将 isThreeLine 设置为 true 并允许显示另一行。副标题将负责给出第 3 行文本。预计,如果 isThreeLine 设置为 true,则副标题应为非空。副标题内“\n”之后的任何内容都会出现在下一行

ListTile(
              title: Text("First Line",
              style: TextStyle(fontWeight: FontWeight.bold)),
              subtitle: Text("Second One Text "\nThis is Line Third Text"),
              isThreeLine: true,
              trailing: Row(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  GestureDetector(
                    child: Icon(Icons.delete,color: Colors.red,),
                    onTap: () {
                    },
                  ),
                ],
              ),
              onTap: (){},
            )