์๋ ํ์ญ๋๊น, ๋ฏผํธ์ ๋๋ค ๐
์ด๋ฒ ํฌ์คํ ์ Flutter ์์ ์ ํ๋ฉฐ ์์๋ ์ผ์ ๋๋ค. Swift์ ๋ค๋ฅด๊ฒ, Flutter๋ ํน์ item์ผ๋ก Scroll์ ํด์ฃผ๋ ๋ด์ฅ ํจ์๊ฐ ์กด์ฌํ์ง๋ ์๋๋ผ๊ณ ์. ๋๋ฌธ์ ํ๋์ item ๋์ด๋ฅผ ๊ณฑํ ์คํ์ ์ผ๋ก Scrollํ๋ ๋ฐฉ์์ ์ฌ์ฉํด ๋ณด์์ต๋๋ค. ์ด๋ ์๋์ ๊ฐ์ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์์ด์.
๐ ์์
- SalaryCap ์ด๊ณผํด์ ๊ตฌ๋งค๊ฐ ์๋๋ ์ ์๋ skipํ๊ณ ์คํฌ๋กคํด์ ๊ตฌ๋งค ๊ฐ๋ฅ ์ ์๋ถํฐ ๋ณด์ฌ์ฃผ๊ธฐ
1. ๋ค์ ๋์๊ฐ๋ Scroll
๋ชธ๊ฐ์ด ๋ฎ๊ฑฐ๋ ๊ฐ์ ์ฒซ๋ฒ์งธ ์ ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์, player item ํ๋์ ๋์ด๋ฅผ ๊ณฑํ ์คํ์
์ผ๋ก scrollํ์์ต๋๋ค. ์ด๋ `shrinkWrap: true`, `NeverScrollableScrollPhysics()`๋ก ์ธํด ์คํฌ๋กค ์์ญ์ด ๋ถ๋ชจ ์์ ฏ์ด๋ ๋ ์ด์์์ด ์ฌ๊ตฌ์ฑ๋๋ฉฐ ๋ค์ ์๋ ์์น๋ก ์์๋ณต๊ตฌ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ฌธ์ `shrinkWrap: true`, `NeverScrollableScrollPhysics()` ๋ฅผ ์ ๊ฑฐํ๊ณ , ๋
๋ฆฝ์ ์ผ๋ก ListView๊ฐ scrollํ ์ ์๊ฒ ๋ณ๊ฒฝํ์์ต๋๋ค.
2. ๋์ด ๋ง์ถ๊ธฐ
ํ์ง๋ง ์ด๋ ๊ฒ ๋ณ๊ฒฝํ ํ์๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋๋ฐ, ListView์ ๋์ด๋ ์ ์ฝ์กฐ๊ฑด์ด ์์ด์ ์ด๋ฅผ ์ค์ ํด์ฃผ์ด์ผ ํ์ต๋๋ค. ๊ณ ๋ฏผํ๋ค ์ ์ฒด ๋์ด์์ ๊ฐ ์์ ์๋์ ์๋ ๊ณ ์ ๋ ๋ค๋น๋ฐ๋ค์ ๋์ด๋ง ์ ํด์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ์์, SizedBox๋ฅผ ํ์ฉํ์ต๋๋ค.
// ์๋จ์ ๋์ด? 80(ํฌ์ง์
+ ๋จ์ ๊ธ์ก) + 56(AppBarDefault) + 50(Week ์ค๋ช
)
// ํ๋จ์ only home nav ๋์ด 80
final double screenHeight = MediaQuery.of(context).size.height;
final double listHeight = screenHeight - 266;
return SelectLineupScaffold(
title: "select_a_position".tr(args: [widget.position]),
weekStr: weekStr,
child: isProcessing
? Center(
child: CircularProgressIndicator(
color: Colors.red[900],
),
)
: SizedBox(
height: listHeight,
child: ListView.separated(
//์ฝ๋ ์๋ต
),
);
}