Я создал индикатор выполнения, в котором я повернул его на 90 градусов, чтобы сделать его вертикальным, а затем я сделал снимок батареи и попытался поместить индикатор выполнения внутри батареи, но не смог разместить изображение внутри, используя относительное положение.
Но когда я использую положение, чтобы быть абсолютным, изображения выравниваются, но я не мог использовать paddingTop или PaddingBottom.
render() {
console.log("Progrss bar");
const barWidth = Dimensions.get("screen").width - 30;
const batteryWidth = Dimensions.get("screen").width;
const progressCustomStyles = {
backgroundColor: "red",
borderRadius: 0,
borderColor: "orange"
};
return (
<View style={styles.container}>
<View style={styles.angle}>
<View style={styles.progress}>
<ProgressBarAnimated
width={barWidth}
value={this.state.progress}
height={150}
borderRadius={0}
backgroundColor={
this.state.progress > 20 && this.state.progress < 90
? "yellow"
: this.state.progress >= 90
? "green"
: "red"
}
/>
</View>
<Image
style={{
width: batteryWidth,
height: 150,
position: "relative",
zIndex: 1
}}
source={require("./assets/battery.png")}
/>
</View>
</View>
);
Используемые стили:
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
backgroundColor: "#FFFFFF"
},
angle: {
transform: [{ rotate: "-90deg" }]
},
progress: {
height: 100
}
});
Вывод, который я получил: