Saturday, May 11, 2024
83
rated 0 times [  89] [ 6]  / answers: 1 / hits: 26042  / 9 Years ago, fri, october 30, 2015, 12:00:00

I'm interested in creating a custom badge on top of an avatar (profile image), except I can't seem to get images to overlap. I tried using a 'translateY' style transform but it is ignored and the two images are still placed side by side, flex box style, even though I want them to overlap. Note, I'm using Views in the example, but I imagine Images work the same way.



'use strict';

var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;

var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={styles.avatar} />
<View style={styles.badge} />
</View>
);
}
});

var styles = StyleSheet.create({
container: {
},
avatar: {
backgroundColor: 'black',
width: 60,
height: 60,
},
badge: {
backgroundColor: 'red',
width: 20,
height: 20,
translateY: -60,
},
});

AppRegistry.registerComponent('SampleApp', () => SampleApp);

More From » react-native

 Answers
19

I review your code and make some changes to get your expected output.
The updated code is:-


'use strict';

var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;

var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={styles.avatar}>
<View style={styles.badge} />
</View>
</View>
);
}
});

var styles = StyleSheet.create({
container: {
},
avatar: {
backgroundColor: 'black',
width: 60,
height: 60,
},
badge: {
backgroundColor: 'red',
width: 20,
height: 20,
left: 20,
top: 20,
},
});

AppRegistry.registerComponent('SampleApp', () => SampleApp);

See the change in above code snippet.
Output screenshot link:- https://drive.google.com/file/d/0B_8x_Jy7Ac9bbDh1eHhfelJpSmc/view?usp=sharing


Whenever you want to override any react component simply put that component in between start and close of another component.
For example:-


If you want to overlap one image on another then use tags like


    <Image source={require('image!firstimage')} style={..}>
<Image source={require('image!secondimage')} style={..}>
</Image>

[#64559] Tuesday, October 27, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kaia

Total Points: 574
Total Questions: 109
Total Answers: 110

Location: Malaysia
Member since Wed, May 11, 2022
2 Years ago
kaia questions
Wed, Mar 17, 21, 00:00, 3 Years ago
Sat, Feb 13, 21, 00:00, 3 Years ago
Mon, Dec 28, 20, 00:00, 3 Years ago
Mon, Nov 23, 20, 00:00, 4 Years ago
;