我的App中有設計使用到了一些輸入框,當我把畫面都刻好了後卻發現了一個問題:手機的輸入鍵盤跳出後把輸入框全都擋住了!!
我的解決方法就是加入<KeyboardAwareScrollView>標籤,這個標籤可以讓畫面在手機鍵盤跳出時自動向上滑動,非常的實用~
要使用<KeyboardAwareScrollView>首先要安裝套件,呼叫出VScode的控制台後輸入以下程式碼:
npm i react-native-keyboard-aware-scrollview
套件安裝完成後將KeyboardAwareScrollView匯入檔案中:
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'
之後就可以開始使用<KeyboardAwareScrollView>,<KeyboardAwareScrollView>要將預計移動的區塊畫面都包在內喔~以下附上部分程式碼~我除了背景底圖不移動外中間的內容都要跟著鍵盤往上移動。
<ImageBackground style={{ flex: 1 }} source={require('../../assets/bg_all.png')}>
<KeyboardAwareScrollView>
<View style={styles.logincardborderbox}>
<View style={styles.input}>
<Text style={styles.laybel}> 學號:</Text>
<View style={styles.inputbox}>
<TextInput
placeholder="輸入學號"
placeholderTextColor="#747474"
maxLength={9}
style={styles.textbox}
value={me.ans}
keyboardType="number-pad"
/>
</View>
</View>
<View style={styles.input}>
<Text style={styles.laybel}> 名稱:</Text>
<View style={styles.inputbox}>
<TextInput
placeholder="輸入名稱"
placeholderTextColor="#747474"
maxLength={8}
style={styles.textbox}
value={me.ans}
autoCorrect={false}
/>
</View>
</View>
<TouchableHighlight
onPress={() =>{
if(me.year.length===9)navigation.navigate('首頁');
else alert("學號格式不正確")
}}
style={styles.gobutton}
underlayColor="#A7050E">
<Text style={styles.goStyle}>Go</Text>
</TouchableHighlight>
</View>
</KeyboardAwareScrollView>
</ImageBackground>