gpt4 book ai didi

react-native - 在 React Native Modal 的固定位置添加一个 UI 元素,例如按钮

转载 作者:行者123 更新时间:2023-12-04 03:36:15 25 4
gpt4 key购买 nike

我很难将任何具有固定位置( float )的 UI 元素放置在模态内容超过屏幕高度的 react native 模态上。类似的问题发生在 flash 消息/ snackbar 等。它们呈现在模态内容的顶部/底部(如果滚动则不可见)而不是显示在页面的顶部/底部。我使用 react-native-paper 的 FAB 创建了一个示例来演示这一点。链接在这里 - https://snack.expo.io/PnX5RCE1_

示例代码:

import * as React from 'react';
import { StyleSheet, View, Modal } from 'react-native';
import { FAB } from 'react-native-paper';
import { Container, Header, Body, Title, Content, ListItem, Text, Icon, Right } from 'native-base';

const renderModal = () : React.ReactElement<any> => {
return(
<Modal
animationType="fade"
visible={true}>
<Container>
<Header>
<Body>
<Title>Alert</Title>
</Body>
<Right>
<Icon name="closecircleo" type="AntDesign"></Icon>
</Right>
</Header>
<Content style={{padding: 10}}>
<Text>Adding a lot of text to make the modal content go out of screen height</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text><Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text><Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text><Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<Text>Some Text Here</Text>
<FAB
style={styles.fab}
small
icon="plus"
onPress={() => console.log('Pressed')}
/>
</Content>
</Container>
</Modal>
);
}

const MyComponent = () => (
<View>
{renderModal()}
</View>
);

const styles = StyleSheet.create({
fab: {
position: 'absolute',
margin: 16,
right: 0,
bottom: 0,
},
})

export default MyComponent;

最佳答案

正如您自己所说,Content 超出了屏幕高度。由于 FAB 是它的子项,因此它的定位是相对于 Content 的总大小,而不是屏幕的大小。您应该在 View 层次结构中向上移动 FAB:

{...}
<Text>Some Text Here</Text>
</Content>
<FAB
style={styles.fab}
small
icon="plus"
onPress={() => console.log('Pressed')}
/>
</Container>
{...}

关于react-native - 在 React Native Modal 的固定位置添加一个 UI 元素,例如按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66838322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com