Flutter์์ ์์ ์ค Text๋ฅผ ๋ด๊ฐ ์ ํ Width ๊ธธ์ด ๋ฐ ์ค์ ์ค์ ํ์ฌ ๊ทธ ์ดํ์ ํ ์คํธ๋ค์ ๋ณด์ด์ง ์๊ฒ ํ๋ ๋ฐฉ๋ฒ.๐ฅณ
๋๋ ์์ธ ํ์ด์ง ์ด์ ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ์ด์ง์์ ํ ์คํธ๊ฐ ๋๋ฌด ๊ธธ์ด์ง ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ์ฌ์ฉํ๋ค๐ !!
์์๊ฐ์ด Container์ width๋ฅผ ์ ํด์ฃผ๊ณ , maxLines๋ฅผ ์ ํ๋ฉด, ๋ด๊ฐ ์ ํด๋์ ๊ฐ์ ๋๊ธฐ์ง ์๋๋ค.
์์ฃผ ๊ต์ฅํ ์ ์ฉ์ฐ ํ๋ค.๐ * 10000
Container(
width: 150,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Flexible(
child: RichText(
overflow: TextOverflow.ellipsis,
maxLines: 5,
strutStyle: StrutStyle(fontSize: 16.0),
text: TextSpan(
text:
'์ธ๊ณ๋ฌธ์ ๊ฐ์ด๋ฐ ํ๊ธ,์ฆ ํ๋ฏผ์ ์์ ํํ๋ค ์ ๋น๋ก์ด ๋ฌธ์๋ผ ๋ถ๋ฅด๊ณค ํฉ๋๋ค. ๊ทธ๊ฒ์ ์ธ๊ณ ๋ฌธ์ ๊ฐ์ด๋ฐ ์ ์ผํ๊ฒ ํ๊ธ๋ง์ด ๊ทธ๊ฒ์ ๋ง๋ ์ฌ๋๊ณผ ๋ฐํฌ์ผ์ ์๋ฉฐ, ๊ธ์๋ฅผ ๋ง๋ ์๋ฆฌ๊น์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ธ๊ณ์ ์ด๋ฐ ๋ฌธ์๋ ์์ต๋๋ค. ๊ทธ๋์ ํ๊ธ์, ์ ํํ ๋งํด [ํ๋ฏผ์ ์ ํด๋ก๋ณธ](๊ตญ๋ณด 70ํธ)์ ์ง์ฆ์ ์ ๋ค์ค์ฝ ์ธ๊ณ๊ธฐ๋ก์ ์ฐ์ผ๋ก ๋ฑ์ฌ๋์์ต๋๋ค. ‘ํ๊ธ’์ด๋ผ๋ ์ด๋ฆ์ 1910๋
๋ ์ด์ ์ฃผ์๊ฒฝ ์ ์์ ๋น๋กฏํ ํ๊ธํ์๋ค์ด ์ฐ๊ธฐ ์์ํ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ ‘ํ’์ด๋ ํฌ๋ค๋ ๊ฒ์ ๋ปํ๋, ํ๊ธ์ ‘ํฐ ๊ธ’์ ๋งํ๋ค๊ณ ํ๊ฒ ์ต๋๋ค.[๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ] ํ๊ธ - ์ธ์์์ ๊ฐ์ฅ ์ ๋นํ ๋ฌธ์ (์๋ํ ๋ฌธํ์ ์ฐ, ์ต์ค์)',
style: TextStyle(
color: Colors.black,
height: 1.4,
fontSize: 16.0,
fontFamily: 'NanumSquareRegular')),
)),
],
));
๋ถ๋ชจ์ ๋๋น๋ฅผ ์ง์ ํด์ฃผ๊ณ , Flexible์์ RichText๋ก maxLines๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
๋ณดํต์ text ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ํ๋ ๋๋ก text ๋ชจ์์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ ์ ์ฉํ๋ค.
Container(
width: 350,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Flexible(
child: RichText(
overflow: TextOverflow.ellipsis,
maxLines: 2,
strutStyle: StrutStyle(fontSize: 16.0),
text: TextSpan(
text:
'์ธ๊ณ๋ฌธ์ ๊ฐ์ด๋ฐ ํ๊ธ,์ฆ ํ๋ฏผ์ ์์ ํํ๋ค ์ ๋น๋ก์ด ๋ฌธ์๋ผ ๋ถ๋ฅด๊ณค ํฉ๋๋ค. ๊ทธ๊ฒ์ ์ธ๊ณ ๋ฌธ์ ๊ฐ์ด๋ฐ ์ ์ผํ๊ฒ ํ๊ธ๋ง์ด ๊ทธ๊ฒ์ ๋ง๋ ์ฌ๋๊ณผ ๋ฐํฌ์ผ์ ์๋ฉฐ, ๊ธ์๋ฅผ ๋ง๋ ์๋ฆฌ๊น์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ธ๊ณ์ ์ด๋ฐ ๋ฌธ์๋ ์์ต๋๋ค. ๊ทธ๋์ ํ๊ธ์, ์ ํํ ๋งํด [ํ๋ฏผ์ ์ ํด๋ก๋ณธ](๊ตญ๋ณด 70ํธ)์ ์ง์ฆ์ ์ ๋ค์ค์ฝ ์ธ๊ณ๊ธฐ๋ก์ ์ฐ์ผ๋ก ๋ฑ์ฌ๋์์ต๋๋ค. ‘ํ๊ธ’์ด๋ผ๋ ์ด๋ฆ์ 1910๋
๋ ์ด์ ์ฃผ์๊ฒฝ ์ ์์ ๋น๋กฏํ ํ๊ธํ์๋ค์ด ์ฐ๊ธฐ ์์ํ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ ‘ํ’์ด๋ ํฌ๋ค๋ ๊ฒ์ ๋ปํ๋, ํ๊ธ์ ‘ํฐ ๊ธ’์ ๋งํ๋ค๊ณ ํ๊ฒ ์ต๋๋ค.[๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ] ํ๊ธ - ์ธ์์์ ๊ฐ์ฅ ์ ๋นํ ๋ฌธ์ (์๋ํ ๋ฌธํ์ ์ฐ, ์ต์ค์)',
style: TextStyle(
color: Colors.black,
height: 1.4,
fontSize: 16.0,
fontFamily: 'NanumSquareRegular')),
)),
],
));
์๋ต์ด "..." ์ผ๋ก ๋์ค๋๋ฐ ์ด๊ฑด RichText ์ overflow ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋ณด์ฌ์ค ์ ์๋ค.
TextOverflow {
/// Clip the overflowing text to fix its container.
clip,
/// Fade the overflowing text to transparent.
fade,
/// Use an ellipsis to indicate that the text has overflowed.
ellipsis,
/// Render overflowing text outside of its container.
visible,
}
overflow: TextOverflow.clip
ํ ์คํธ๋ฅผ ํด๋ฆฌํํ์ฌ ์ปจํ ์ด๋๋ฅผ ๊ณ ์ .
overflow: TextOverflow.fade
ํ ์คํธ๋ฅผ ํฌ๋ช ํ๊ฒ Fade ํจ.
overflow: TextOverflow.ellipsis
์ค์ํ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๊ฐ ์ค๋ฒํ๋ก๋์์์ ๋ํ๋.
overflow: TextOverflow.visible
์ปจํ ์ด๋ ์ธ๋ถ์ ์ค๋ฒํ๋ก์ฐ ํ ์คํธ๋ฅผ ๋ ๋๋ง ํจ.
์ง - ! ๐คฉ
๐ ์ฐธ๊ณ