perf(app/members): 카드 스와이프 성능 최적화 및 스케일 조정
- AnimatedBuilder child 캐싱으로 매 프레임 rebuild 방지 - RepaintBoundary 추가로 리페인트 범위 제한 - 양옆 카드 스케일 비율 조정 (0.15 → 0.25) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
fcf800f975
commit
033047ebdb
1 changed files with 7 additions and 2 deletions
|
|
@ -208,15 +208,20 @@ class _MembersViewState extends ConsumerState<MembersView> with TickerProviderSt
|
|||
itemBuilder: (context, index) {
|
||||
return AnimatedBuilder(
|
||||
animation: _pageController,
|
||||
// child를 캐싱하여 매 프레임 rebuild 방지
|
||||
// RepaintBoundary로 리페인트 범위 제한
|
||||
child: RepaintBoundary(
|
||||
child: _buildMemberCard(membersState.members[index], controller),
|
||||
),
|
||||
builder: (context, child) {
|
||||
double value = 1.0;
|
||||
if (_pageController.position.haveDimensions) {
|
||||
value = (_pageController.page! - index).abs();
|
||||
value = (1 - (value * 0.15)).clamp(0.0, 1.0);
|
||||
value = (1 - (value * 0.25)).clamp(0.0, 1.0);
|
||||
}
|
||||
return Transform.scale(
|
||||
scale: Curves.easeOut.transform(value),
|
||||
child: _buildMemberCard(membersState.members[index], controller),
|
||||
child: child,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue