Components - Android Development
Basics

<View> => Uses flexbox by default
<SafeAreaView> => Gives default padding from the top, Only of iOS
<Text>
numberOfLines={n} => Truncates the texts exceeding this
onPress={functionName} => Like onClick()
<Image>
source={require("filePath")} => Returns a number that is reference to the local image
source={{width: 200, height: 300, uri: "imageURL",}} => For network image
blurRadius={1}
fadeDuration={1000} => Fade effect on start, Only for Android
resizeMode = "contain"
<TextInput>
<StyleSheet>
- Basic
- Doesn't have cascading effect
- Standard
style={variable}
style={{ propertyName: value}}
style={styles.variable}
- When using
const styles = StyleSheet.create({}), returns a Object
- Validates the properties unlike plain JS object
style={[styles.variable1, styles.variable2]}
- Properties of right overwrites the left
<Touchable>
<TouchableWithoutFeedback> => Wrap components with this
onPress={functionName} => Like onClick()
<TouchableOpacity> => Like TouchableWithoutFeedback but reduces opacity for a moment when clicked
<TouchableHighlight> => Like TouchableWithoutFeedback but darkens background for a moment when clicked
<Pressable>
onPress
android_ripple => Style for Android
style => Style for IOS
<Modal>
- UI
<Button>
<Picker>
<Slider>
<Switch>
- List Views
<ScrollView> => Adds Scroll bar when required
<FlatList> => Lazy loading
data => Array/Object
renderItem => Returns items
keyExtractor => If "key" named key is not present in the array object
<SelectionList>
- IOS
<ActionSheetIOS>
<AlertIOS>
- Android
<BackHandler>
<DatePickerAndroid>
API
Alert
alert("Message") => Standard
Alert.alert("Title", "Message", [{text: "button1"}, {text: "button2", onPress: functionName}])
Alert.prompt("Title", "Message", functionName) => Only for iOS
Platform => For writing platform specific style
StatusBar
Dimensions => Numbers like "n" are Density Independent Pixels (DIP) => Physical Pixel = DIP x Scale Factor => Phone Pixel = Points x Scale Factor
- get() => Takes the value "window" & "screen", which is same for iOS, window size is smaller for Android
Others
- Vector Icons
npm i react-native-vector-icons
npx react-native link react-native-vector-icons