如何在Flutter中实现具有固定的垂直和水平标题的表?例如,水平标题仅应水平滚动,垂直标题应垂直滚动。两个标题都应始终可见。如何设置布局?
我已经尝试使用带有两个嵌套列的行来设置2x2的整体布局:(0,0)为空; (0,1)垂直标题; (1,0)水平标题和(1,1)数据。为了可视化实际数据,我使用GridViews作为两个标题和数据。而且,我想使用滚动控制器来实现滚动行为。
我想到的另一种解决方案是嵌套GridView,而不是Row和两列。
此代码显示第一列:
Widget build(BuildContext context) {
return Container(
width: double.maxFinite,
child: Row(
children: <Widget>[
Column(
children: <Widget>[
Text("empty"), // (0,0)
Container( // (0, 1)
child: Flexible(
child: GridView.count(
controller: _vScrollController1,
crossAxisCount: 1,
childAspectRatio: 3.0,
children: List.generate(
widget.data.length,
(index) => Text("my cell")
),
),
),
),
],
),
],
),
);
但是,它会产生以下错误消息:
════════渲染库捕获到异常
方法'>'在null上调用。
接收者:null。 尝试调用:>(1e-10)。 用户创建的导致错误的小部件的祖先是Container。 ═════════════════════════════════
可能某些宽度/高度属性设置不正确?您将如何实现这种表格布局?感谢您的帮助!
答案 0 :(得分:0)
实际上已有 Flutter 插件可用于此目的。考虑使用一个。
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
//Message[] msg;
//props.setProperty("mail.store.protocol", "imap");
//props.setProperty("mail.imap.ssl.enable", "true");
//props.setProperty("mail.imaps.partialfetch", "false");
//props.put("mail.mime.base64.ignoreerrors", "true");
//Session mailSession = Session.getInstance(properties);
session.setDebug(true);
Store store = session.getStore("imaps");
store.connect(host, username, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
System.out.println("Total Message:" + folder.getMessageCount());
System.out.println("Unread Message:" + folder.getUnreadMessageCount());
Message[] msg = folder.getMessages();
for (Message mail : msg) {
System.out.println("*********************************");
System.out.println("MESSAGE : \n");
System.out.println("Subject: " + mail.getSubject());
System.out.println("From: " + mail.getFrom()[0]);
System.out.println("To: " + mail.getAllRecipients()[0]);
System.out.println("Date: " + mail.getReceivedDate());
System.out.println("Size: " + mail.getSize());
System.out.println("Flags: " + mail.getFlags());
System.out.println("ContentType: " + mail.getContentType());
//System.out.println("Body: \n" + getEmailBody(mail));
System.out.println("*******************************");
}
}
实际输出:
您可以检查其他现有插件。
此外,这里有一些与您有关的已回答的 SO 问题:
其他参考,您可以查看博客“{{3}}”