Solution is bit tricky. See how...
import React, {useState} from 'react';
import { Text, View, StyleSheet, TouchableOpacity, FlatList } from 'react-native';
const shortText = "Some text that is not too long to cause problems..."
const longText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut porttitor fermentum purus pulvinar congue. In consequat felis metus, ut bibendum urna faucibus non. Suspendisse id nisl massa. Quisque vitae ante sodales, ornare mauris ut, semper lectus. Quisque cursus elit vel justo cursus, non venenatis magna auctor. Aenean scelerisque venenatis ultrices. Etiam a tempor urna. Fusce tristique molestie purus fermentum euismod.
Ut eleifend neque ut fermentum cursus. Suspendisse id mattis purus, non varius eros. Vivamus vulputate pharetra lorem, eget tempor est sollicitudin eget. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In iaculis dictum blandit. Donec vel consequat augue. Suspendisse dictum accumsan risus, sed elementum purus egestas eu. Aenean aliquet eros vel ex congue dignissim. Suspendisse eu sapien sapien. Aliquam id nisi aliquam, faucibus urna ac, pharetra libero. Integer maximus vitae metus auctor condimentum. Donec sit amet mauris in arcu bibendum maximus.`
let currentText = shortText
export default function App() {
const [value, setValue] = useState(shortText);
return (
<View style={{height: "100%", width: "100%", position: "absolute"}}>
<View style={styles.container}>
<Text style={styles.title}>TITLE</Text>
<View style={styles.card}>
<View style={styles.tabs}>
<TouchableOpacity onPress={()=>setValue(shortText)} style={styles.button}><Text>Short</Text></TouchableOpacity>
<TouchableOpacity onPress={()=>setValue(longText)} style={styles.button}><Text>Long</Text></TouchableOpacity>
</View>
<FlatList data={value.split(" ")} renderItem={(i)=><Text style={{backgroundColor: "#2f2",}}>{i.item}</Text>} />
</View>
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#FF3300",
margin: 16
},
card: {
marginLeft: 16,
marginRight: 16,
flex: 1, // Added
bottom: 5 // Added
},
tabs: {
flexDirection: "row"
},
title: {
margin: 16,
fontSize: 18,
fontWeight: 'bold',
textAlign: 'center',
},
button: {
height: 40,
flex: 1,
alignItems: "center",
padding: 12,
backgroundColor: "#fff"
},
});
Just added 2 line of code, move backgroundColor
style from card
to Text
component.
Result,
