Lynx
KeyboardAvoidingScrollView
소프트 키보드가 활성 입력을 가리지 않도록 세로 스크롤 위치와 하단 여백을 조정하는 컴포넌트입니다.
사용 가능 버전@seed-design/lynx-react@0.4.0
Installation
Props
Prop
Type
id?string | undefinedfocusable?boolean | undefinedbounces?boolean | undefinedenable-scroll?boolean | undefinedscroll-bar-enable?boolean | undefinedupper-threshold?number | undefinedlower-threshold?number | undefinedinitial-scroll-offset?number | undefinedinitial-scroll-to-index?number | undefinedbindlayoutchange?EventHandler<LayoutChangeDetailEvent<Target>> | undefinedbindscrolltoupper?((e: ScrollToUpperEvent) => void) | undefinedbindscrolltolower?((e: ScrollToLowerEvent) => void) | undefinedbindscroll?((e: ScrollEvent) => void) | undefinedbindscrollend?((e: ScrollEndEvent) => void) | undefinedbindcontentsizechanged?((e: ContentSizeChangedEvent) => void) | undefinedstyle?CSSProperties | undefinedchildren?ReactNodeclassName?string | undefinedbindtap?EventHandler<BaseTouchEvent<Target>> | undefinedbindtouchstart?EventHandler<BaseTouchEvent<Target>> | undefinedbindtouchend?EventHandler<BaseTouchEvent<Target>> | undefinedbindtouchcancel?EventHandler<BaseTouchEvent<Target>> | undefinedmain-thread:bindtap?EventHandler<BaseTouchEvent<Element>> | undefinedUsage
TextField.Input과 TextField.Textarea가 focus·blur·layout 변경을 자동으로 전달하므로 별도 등록 prop은 필요하지 않습니다.
Web Version Differences
- 브라우저의
visualViewport나 CSS viewport unit 대신 Lynx keyboard global event와 native node 측정을 사용합니다. - 키보드가 열릴 때 필요한 하단 spacer만 추가하고, 사용자 스크롤 중에는 자동 이동을 잠시 중단합니다.
Unsupported Lynx Features
- 가로·중첩 scroll view는 지원하지 않습니다.
- 키보드 toolbar 높이와 큰 textarea의 caret 단위 회피는 아직 반영하지 않습니다.
Last updated on