我正在开发一个具有重叠效果的用户头像组件的React Native应用程序:
我能够让它在iOS上运行,因为它允许负边距,但是当你在Android上使用负边距时,它会剪切最后一个图像:
以下是我正在使用的样式:
avatarContainer: {
borderRadius: 20,
width: 40,
height: 40,
marginRight: -11
},
avatar: {
borderRadius: 20,
width: 40,
height: 40
},
avatarContainer是图像背后的白色圆圈,而头像是图像本身。
在两个平台上实现所需样式的最佳方法是什么?
答案 0 :(得分:11)
我已经尝试了几乎你的设置+ flexbox,一切似乎都正常。
class App extends React.Component {
render() {
const { overlapContainer, avatarContainer, avatar} = styles;
return (
<View style={overlapContainer}>
<View style={avatarContainer}>
<Image style={avatar} source={{ uri: 'http://lorempixel.com/output/cats-q-c-100-100-3.jpg' }} />
</View>
<View style={avatarContainer}>
<Image style={avatar} source={{ uri: 'http://lorempixel.com/output/cats-q-c-100-100-7.jpg' }} />
</View>
<View style={avatarContainer}>
<Image style={avatar} source={{ uri: 'http://lorempixel.com/output/cats-q-c-100-100-3.jpg' }} />
</View>
<View style={avatarContainer}>
<Image style={avatar} source={{ uri: 'http://lorempixel.com/output/cats-q-c-100-100-7.jpg' }} />
</View>
</View>
);
}
}
const styles = {
overlapContainer: {
flexDirection: 'row-reverse',
justifyContent: 'flex-end',
marginTop: 50,
marginRight: 50
},
avatarContainer: {
borderRadius: 33,
height: 66,
width: 66,
marginLeft: -15,
borderStyle: 'solid',
borderWidth: 3,
borderColor: 'white'
},
avatar: {
borderRadius: 30,
height: 60,
width: 60
}
}