티스토리 뷰
Android에서는 Back키를 통해 키보드를 내릴 수 있지만, IOS에서의 사용은 입력 칸이 아닌 다른 곳을 누르는 경우 텍스트 입력(키보드)이 취소되는 사용자 UX를 가지고 있다.
UI를 그릴 때 TouchableWithoutFeedback의 자식 뷰로 구성하게 되면,
키보드가 보여지는 상태에서 빈 공간 또는 자식 뷰를 터치할 경우 닫히도록 동작시킬 수 있다.
TouchableWithoutFeedback 컴포넌트는 자식 뷰를 1개만 가질 수 있으므로 다음처럼 전체 공간을 채우는 뷰를 추가하여 세부 UI를 구성해 줄 필요성이 있다.
import React, {Component} from 'react';
import { Keyboard, TouchableWithoutFeedback } from 'react-native';
class TestComponent extends Component {
render() {
return (
<TouchableWithoutFeedback
onPress={() => {
Keyboard.dismiss();
}}>
<View
style={{width: '100%', height: '100%', backgroundColor: '#bbbbbb'}}
/>
</TouchableWithoutFeedback>
);
}
}
주의사항
TouchableWithoutFeedback 내부에 FlatList 또는 ScrollView를 구성하게 되면,
터치 이벤트를 가로채 스크롤이 먹통이 되는 증상이 있다.
스크롤이 동작하게 되는 컴포넌트는 다음처럼 TouchableWithoutFeedback의 바깥쪽에 구성해주도록 하자
import React, {Component} from 'react';
import { Keyboard, TouchableWithoutFeedback } from 'react-native';
class TestComponent extends Component {
render() {
return (
<View style={{flex: 1, width: '100%', height: '100%'}}>
<TouchableWithoutFeedback
onPress={() => {
Keyboard.dismiss();
}}>
<View
style={{width: '100%', height: 200, backgroundColor: '#bbbbbb'}}
/>
</TouchableWithoutFeedback>
<ScrollView
style={{flex: 1, alignSelf: 'stretch'}}
contentInsetAdjustmentBehavior="automatic">
<View
style={{width: '100%', height: 400, backgroundColor: '#000000'}}
/>
<View
style={{width: '100%', height: 400, backgroundColor: '#333333'}}
/>
<View
style={{width: '100%', height: 400, backgroundColor: '#666666'}}
/>
<View
style={{width: '100%', height: 400, backgroundColor: '#aaaaaa'}}
/>
</ScrollView>
</View>
);
}
}
반응형
'RN' 카테고리의 다른 글
[React Native] deep link 설정 및 핸들링 (0) | 2021.01.27 |
---|---|
[React Native] react-native-router-flux 연속 Push, Pop 대응 (0) | 2021.01.15 |
RN] 글꼴 적용하기 (0.62.2) (0) | 2020.06.28 |
[Android] 에뮬레이터 먹통(응답없음)되는 경우 (4) | 2020.06.03 |
[React Native]TextInput 한글 입력 시 글씨 크기 오락가락...하는 증상 (2) | 2020.06.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- multiple commands produce
- idea command
- Gif
- 12.5
- local
- 프로가드
- Monterey
- cocoapods
- Podfile
- ReactNative 한글
- uicollecionview
- jpeg
- mac command
- HTML
- idea
- WKwebview
- png
- TextInput 한글
- zip
- proguard
- env: python
- F
- DEX
- multidex
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함