Saya mencoba membuat garis di mana teks tengah memiliki ukuran maksimum, dan jika konten teks terlalu besar, ukurannya pas.
Saya memasukkan TextOverflow.ellipsis
properti untuk mempersingkat teks dan memasukkan tiga poin ...
tetapi tidak berfungsi.
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) => new Scaffold(
appBar: new AppBar(
backgroundColor: new Color(0xFF26C6DA),
),
body: new ListView (
children: <Widget>[
new Card(
child: new Container(
padding: new EdgeInsets.symmetric(horizontal: 16.0, vertical: 18.0),
child: new Row(
children: <Widget>[
new Container(
padding: new EdgeInsets.only(right: 24.0),
child: new CircleAvatar(
backgroundColor: new Color(0xFFF5F5F5),
radius: 16.0,
)
),
new Container(
padding: new EdgeInsets.only(right: 13.0),
child: new Text(
'Text lar...',
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 13.0,
fontFamily: 'Roboto',
color: new Color(0xFF212121),
fontWeight: FontWeight.bold,
),
),
),
new Container(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
new Row(
children: <Widget>[
new Text(
'Bill ',
style: new TextStyle(
fontSize: 12.0,
fontFamily: 'Roboto',
color: new Color(0xFF9E9E9E)
),
),
new Text(
'\$ -999.999.999,95',
style: new TextStyle(
fontSize: 14.0,
fontFamily: 'Roboto',
color: new Color(0xFF212121)
),
),
],
),
new Row(
children: <Widget>[
new Text(
'Limit ',
style: new TextStyle(
fontSize: 12.0,
fontFamily: 'Roboto',
color: new Color(0xFF9E9E9E)
),
),
new Text(
'R\$ 900.000.000,95',
style: new TextStyle(
fontSize: 14.0,
fontFamily: 'Roboto',
color: new Color(0xFF9E9E9E)
),
),
],
),
]
)
)
],
),
)
),
]
)
);
}
hasil:
diharapkan:
flutter
dart
flutter-layout
rafaelcb21.dll
sumber
sumber
Menggunakan Ellipsis
Menggunakan Fade
Menggunakan Clip
catatan:
Jika Anda menggunakan
Text
inside aRow
, Anda bisa meletakkan di atasText
insideExpanded
seperti:sumber
softWrap: false
adalah apa yang saya butuhkan, terima kasih!Anda dapat menggunakan kode ini yang dipotong untuk menampilkan teks dengan elipsis
sumber
Anda bisa melakukannya seperti itu
sumber
pertama, bungkus Anda
Row
atauColumn
di widgetFlexible
atauExpanded
lalusumber
Salah satu cara untuk memperbaiki kelebihan Widget Teks dalam satu baris jika misalnya pesan obrolan bisa menjadi satu baris yang sangat panjang. Anda dapat membuat Container dan BoxConstraint dengan maxWidth di dalamnya.
sumber
Wrapping yang elemen turunannya berada dalam satu baris atau kolom, silahkan bungkus kolom atau baris tersebut menjadi New Flexible ();
https://github.com/flutter/flutter/issues/4128
sumber
Cukup bungkus di dalam widget yang dapat mengambil lebar tertentu agar berfungsi atau yang akan mengasumsikan lebar penampung induk.
sumber
Saya pikir Container induk perlu diberi maxWidth dengan ukuran yang sesuai. Sepertinya kotak Teks akan mengisi ruang apa pun yang diberikan di atas.
sumber
Bergantung pada situasi Anda, menurut saya ini adalah pendekatan terbaik di bawah.
sumber
Jika Anda hanya menempatkan teks sebagai anak (ren) kolom, ini adalah cara termudah agar teks secara otomatis dibungkus. Dengan asumsi Anda tidak memiliki sesuatu yang lebih rumit. Dalam kasus tersebut, saya akan berpikir Anda akan membuat ukuran wadah Anda sesuai keinginan Anda dan meletakkan kolom lain di dalam dan kemudian teks Anda. Sepertinya ini bekerja dengan baik. Wadah ingin mengecilkan ukuran isinya, dan ini tampaknya secara alami bertentangan dengan pembungkusan, yang membutuhkan lebih banyak upaya.
sumber
Ada banyak jawaban tetapi akankah lebih banyak mengamatinya.
1. klip
Klip teks yang meluap untuk memperbaiki wadahnya.
Keluaran:
2. memudar
Fade teks yang meluap menjadi transparan.
Keluaran:
3. elipsis
Gunakan elipsis untuk menunjukkan bahwa teks telah meluap.
Keluaran:
4. terlihat
Merender teks yang meluap di luar penampungnya.
Keluaran:
sumber
Mencoba:
Ini akan ditampilkan
OVER FLOW
. Jika terjadi overflow maka akan ditangani.sumber