React Native 模态定位
React Native Modal Positioning
我使用的是 React Native 内置的模态框(特别是我使用的是 React Native Paper 变体)。默认情况下,这似乎在屏幕中间打开。但是,如果您在 Modal 中进行一些文本输入,那么如果它在屏幕顶部打开,或者知道键盘,它会更有用。但是我找不到让这个工作的方法。
我的(简化)模态代码是:
<Portal>
<Modal visible={visibleModalNew} onDismiss={closeModalNew} contentContainerStyle={styles.modalContainer} >
<View>
<Title>New</Title>
<View>
<TextInput
mode="outlined"
label="Data"
style={{alignSelf:'center', width:'95%'}}
defaultValue={newData}
onChangeText={newData=> setNewData(newData)}
onSubmitEditing={() => handleDone()}
/>
<Button onPress={() => doSomething()}>Do something</Button>
</View>
</View>
</Modal>
</Portal>
啊,想办法了。我将模态包裹在 KeyboardAwareView 中,从模态中移除可见道具,然后将其全部包裹在条件渲染中,并将可见道具放在那里。似乎如愿以偿。
我使用的是 React Native 内置的模态框(特别是我使用的是 React Native Paper 变体)。默认情况下,这似乎在屏幕中间打开。但是,如果您在 Modal 中进行一些文本输入,那么如果它在屏幕顶部打开,或者知道键盘,它会更有用。但是我找不到让这个工作的方法。
我的(简化)模态代码是:
<Portal>
<Modal visible={visibleModalNew} onDismiss={closeModalNew} contentContainerStyle={styles.modalContainer} >
<View>
<Title>New</Title>
<View>
<TextInput
mode="outlined"
label="Data"
style={{alignSelf:'center', width:'95%'}}
defaultValue={newData}
onChangeText={newData=> setNewData(newData)}
onSubmitEditing={() => handleDone()}
/>
<Button onPress={() => doSomething()}>Do something</Button>
</View>
</View>
</Modal>
</Portal>
啊,想办法了。我将模态包裹在 KeyboardAwareView 中,从模态中移除可见道具,然后将其全部包裹在条件渲染中,并将可见道具放在那里。似乎如愿以偿。