【发布时间】:2019-01-18 01:27:44
【问题描述】:
使用 MediaQuery,我可以获取三星 S7 Edge 屏幕尺寸的高度和宽度,以便使用它。但是如何使用 MediaQuery 来布局 ListTile 中的多列动态文本呢?在我的演示项目中,我将文本大小设置为 12,而在三星 S6 中,我遇到了溢出问题...... Flutter 中文本比例因子的任何信息或示例?
我在这里找到了一个解决方案 (How can Flutter handle dpi text and image size differences),我尝试构建演示项目。 S6 textScaleFactor 是 1.1 而 S7 是 1.0....
我使用 S7 文本大小测试它的原始演示应用程序是 12。当我尝试在 S6 中测试它时出现溢出问题...我需要使用 MediaQuery 缩小或放大以设置文本比例因子,所以它可以在大多数设备上工作而不会出现溢出问题?
在 ListTile 中,我有一列有 4 行单独的文本,所有值都来自数据库。如果文本值很长,我会在 S6 设备上遇到溢出问题。所以我的问题是如何使用 MediaQuery 为 Flutter 中的文本设置 scaleFactor?
更新:
new ListTile(
trailing: new Icon(Icons.chevron_right),
onTap: () {
},
title: new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text(
‘My Account Details:’,
style: new TextStyle(
fontSize: 14.0, fontWeight: FontWeight.bold, color: Colors.black),
overflow: TextOverflow.fade,
),
],
),
subtitle: new Column(
children: <Widget>[
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text(‘Hello Flutter’,
style: new TextStyle(
fontSize: 12.0, color: Colors.black54),
overflow: TextOverflow.fade,
),
new Text(’Today is **************’,
style: new TextStyle(
fontSize: 12.0, color: Colors.black54),
overflow: TextOverflow.fade,
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text(‘Name’,
style: new TextStyle(
fontSize: 12.0, color: Colors.black54),
overflow: TextOverflow.fade,
),
new Text(‘Dart’,
style: new TextStyle(
fontSize: 12.0, color: Colors.black54),
overflow: TextOverflow.fade,
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text(’Surname’,
style: new TextStyle(
fontSize: 12.0, color: Colors.black54),
overflow: TextOverflow.fade,
),
new Text(‘Flutter’,
style: new TextStyle(
fontSize: 12.0, fontWeight: FontWeight.bold, color: Colors.black),
overflow: TextOverflow.fade,
),
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text(‘Account Name: Let’s Flutter all day long till down with fancy User Interface’,
style: new TextStyle(
fontSize: 12.0, color: Colors.black54),
overflow: TextOverflow.fade,
),
new Text(‘109.65’,
style: new TextStyle(
fontSize: 12.0, fontWeight: FontWeight.bold, color: Colors.black),
overflow: TextOverflow.fade,
),
],
),
],
),
),
【问题讨论】:
-
请把你的代码放在这里
-
@diegoveloper 我添加我的代码...