docs(channel): 탭 전환 스크롤 요구사항을 기록한다

This commit is contained in:
2026-06-27 04:28:44 +09:00
parent 0e07ed0b5a
commit 0679dc7deb
2 changed files with 75 additions and 0 deletions

View File

@@ -508,6 +508,7 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
- 본인 페이지 Floating Button의 `커뮤니티 글 올리기`, `오디오 콘텐츠 올리기`, `라이브 만들기`는 기존 작성/업로드/라이브 생성 진입점이 있으면 재사용하고, 없으면 구현 계획에서 별도 Task로 확정한다.
- `RecommendedActivityType``CreatorActivityType`으로 변경하고 공용 패키지로 이동할 때, 홈 추천 API의 기존 참조도 함께 갱신한다.
- navigation extra 이름, analytics/logging은 근거 파일이나 별도 요구가 확인되기 전까지 임의로 추가하지 않는다.
- 탭 전환 시 공통 scroll 위치를 자동으로 최상단 또는 sticky tab-bar anchor로 이동시키는 별도 보정 로직을 추가하거나 유지하지 않는다.
---
@@ -560,6 +561,8 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
- `라이브`, `오디오`, `시리즈`, `커뮤니티`, `팬Talk`, `후원` 탭 상세 화면은 이번 구현 범위로 사용되지 않는다.
- 탭 바 아래 홈 컨텐츠는 Figma `296:14895` 기준으로 기존 동적 조립 UI를 삭제하고 섹션별 Figma component 기반 UI로 재구성된다.
- 홈 컨텐츠 재구성에서 `화보` 섹션은 현재 API 응답에 데이터가 없으므로 구현 범위에서 제외한다.
- 탭 이동 시 공통 scroll 위치가 자동으로 최상단 또는 sticky tab-bar anchor로 변경되지 않는다.
- 탭 이동 후에도 owner FAB/CTA 표시 갱신, 탭별 최초 로드, ViewPager 높이 갱신, load-more viewport 계산은 기존처럼 수행된다.
---
@@ -573,6 +576,20 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
---
### Creator Channel Tab Switch Scroll Position Follow-up
#### Requirements
- `CreatorChannelActivity`에서 사용자가 `홈`, `라이브`, `오디오`, `시리즈`, `커뮤니티`, `팬Talk`, `후원` 탭을 이동할 때 공통 `NestedScrollView`를 자동으로 최상단 또는 sticky tab-bar anchor 위치로 스크롤하지 않는다.
- 탭 클릭과 `ViewPager2` swipe 전환 모두 동일하게 현재 scroll 위치를 유지한다.
- 탭 전환 시 기존 owner FAB 접기, owner/donation CTA 표시 갱신, 탭별 최초 로드, ViewPager 높이 갱신, load-more viewport 계산은 유지한다.
- 사용자가 직접 스크롤한 위치는 탭 전환만으로 변경되지 않아야 하며, 컨텐츠를 보기 위해 필요한 스크롤은 사용자의 직접 조작에 맡긴다.
- 기존 sticky tab-bar/title-bar black 전환 동작 자체는 유지하되, 탭 전환 이벤트가 sticky 위치로 강제 이동시키는 트리거가 되면 안 된다.
#### Edge Cases
- 현재 scroll 위치가 header 상단, sticky tab-bar anchor 이전, sticky tab-bar anchor 이후, 목록 하단 어느 위치에 있어도 탭 전환만으로 `scrollTo`/`smoothScrollTo`가 실행되지 않아야 한다.
- 탭 전환 직후 탭별 fragment content height가 변경되어도 기존 ViewPager 높이 보정과 pagination bottom 재평가는 유지되어야 한다.
---
## 11. Open Questions
- 크리에이터 채널 신규 페이지의 진입점과 전달받을 Android extra 또는 navigation argument 이름은 구현 계획에서 기존 이동 패턴을 확인해 확정한다.
- 홈 탭 각 섹션의 empty 상태를 섹션 숨김으로 처리할지, 빈 상태 UI로 처리할지는 기존 크리에이터/홈 화면 패턴 확인이 필요하다.
@@ -640,3 +657,5 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
- 2026-06-25: 사용자 후속 요구사항에 따라 소개 섹션 본문을 Figma `296:14998` 기준 `Typography.Body3`/white/line-height 1.45로 보정하고, `spacing_14` gap과 `spacing_20` horizontal padding 및 `match_parent` 폭 유지 요구를 문서화했다.
- 2026-06-25: 후속 UI 보정 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest" --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest" --tests "kr.co.vividnext.sodalive.v2.widget.SeriesContentCardViewTest" --tests "kr.co.vividnext.sodalive.v2.widget.AudioContentCardViewTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`를 실행해 모두 `BUILD SUCCESSFUL` 또는 출력 없음으로 PASS했다. `ktlintCheck``.editorconfig disabled_rules` deprecation warning과 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- 2026-06-27: 사용자 후속 요구사항에 따라 `CreatorChannelActivity`의 탭 이동 시 공통 `NestedScrollView`를 최상단 또는 sticky tab-bar anchor 위치로 자동 스크롤하지 않는 요구사항을 추가했다. 기존 탭별 로드, FAB/CTA 갱신, ViewPager 높이 갱신, load-more viewport 계산은 유지하는 것으로 범위를 고정했다. 이번 단계는 PRD 문서 보완만 수행했으며 구현/빌드/테스트는 실행하지 않았다.