InputText에 텍스트 입력을 위해 키보드가 올라오면 배너 영역에 있는 SafeAreaView가 함께 올라와 해결하기 위해 KeyboardAvoidingView 사용했다.
1. KeyboardAvoidingView를 사용하기 위해 import한다
import {KeyboardAvoidingView, Platform} from 'react-native';
Platform은 os별로 다르게 적용되는 부분을 위해 함께 추가했다.
2. 키보드가 올라왔을 때 사라져야 하는 부분을 KeyboardAvoidingView 컴포넌트로 감싸준다
return (
<NativeBaseProvider>
<NavigationEvents
onWillFocus={payload => {
this.focus.current = true;
}}
onDidBlur={payload => {
this.focus.current = false;
}}
/>
<KeyboardAvoidingView
style={{flex: 1}}
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
keyboardVerticalOffset={Platform.select({ ios: responsiveHeight(-3), android: responsiveHeight(-3) })}
>
<SafeAreaView /> //배너가 들어가는 영역
</KeyboardAvoidingView>
</NativeBaseProvider>
);
KeyboardVerticalOffset에 다양한 화면에서 똑같이 동작하도록 responsiveHeight를 추가했다
이렇게 수정하니 키보드 올라왔을 때 불필요하게 노출되던 영역이 사라졌다!
'Fronted' 카테고리의 다른 글
[React-Native] 배포 전 디버그, 릴리즈 apk 파일 생성하는 방법 (0) | 2024.04.26 |
---|---|
[React-Native] VSCode로 프로젝트 실행하기 (yarn 설치, 명령어) (0) | 2024.04.11 |
[React-Native] 윈도우 개발 환경설정3 (안드로이드 스튜디오 SDK, ADK 설정) (0) | 2024.04.11 |
[React-Native] 윈도우 개발 환경설정2 (JDK, 안드로이드 스튜디오 설치) (0) | 2024.04.10 |
[React Native] 윈도우 개발 환경설정1 (Chocolatey, Node.js, React-Native-Cli 설치) (0) | 2024.04.10 |