Categories
JavaScript Answers React Native Answers

How to add a circle image button with React Native?

Sometimes, we want to add a circle image button with React Native.

In this article, we’ll look at how to add a circle image button with React Native.

How to add a circle image button with React Native?

To add a circle image button with React Native, we can use the TouchableOpacity and Icon components.

For instamce, we write:

import * as React from 'react';
import { View, TouchableOpacity } from 'react-native';
import Constants from 'expo-constants';
import { Card } from 'react-native-paper';
import { Icon } from 'react-native-elements';

export default function App() {
  return (
    <View>
      <TouchableOpacity
        style={{
          borderWidth: 1,
          borderColor: 'rgba(0,0,0,0.2)',
          alignItems: 'center',
          justifyContent: 'center',
          width: 100,
          height: 100,
          backgroundColor: '#fff',
          borderRadius: 50,
        }}>
        <Icon name="chevron-right" size={30} color="#01a699" />
      </TouchableOpacity>
    </View>
  );
}

to make the TouchableOpacity round with by setting the width and height and set the borderRadius to be half of the width and height.

And then we align the Icon in the center of TouchableOpacity by setting justifyContent and alignItems to 'center'.

And we add a border around the TouchableOpacity component by setting borderWidth and borderColor.

Conclusion

To add a circle image button with React Native, we can use the TouchableOpacity and Icon components.

Categories
JavaScript Answers React Native Answers

How to fix shadow not appearing with React Native?

Sometimes, we want to fix shadow not appearing with React Native.

In this article, we’ll look at how to fix shadow not appearing with React Native.

How to fix shadow not appearing with React Native?

To fix shadow not appearing with React Native, we should set the shadow styles and the elevation style.

For instance, we write:

import * as React from 'react';
import { View, Text } from 'react-native';
import Constants from 'expo-constants';
import { Card } from 'react-native-paper';

export default function App() {
  return (
    <View>
      <Text
        style={{
          width: 50,
          height: 30,
          shadowOffset: { width: 5, height: 5 },
          shadowColor: 'black',
          shadowOpacity: 1,
          elevation: 2,
          backgroundColor: '#0000',
        }}>
        hello
      </Text>
    </View>
  );
}

to add a view with a box shadow around it.

shadowOffset adds the shadow effect.

shadowColor sets the shadow color.

And shadowOpacity sets the shadow opacity.

elevation sets the shadow’s height.

Conclusion

To fix shadow not appearing with React Native, we should set the shadow styles and the elevation style.

Categories
JavaScript Answers React Native Answers

How to change button style on press in React Native?

Sometimes, we want to change button style on press in React Native.

In this article, we’ll look at how to change button style on press in React Native.

How to change button style on press in React Native?

To change button style on press in React Native, we can wrap our button with the TouchableHighlight component.

For instance, we write:

import * as React from 'react';
import { View, StyleSheet, Text, TouchableHighlight } from 'react-native';
import Constants from 'expo-constants';
import { Card } from 'react-native-paper';

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
  btnNormal: {
    borderColor: 'blue',
    borderWidth: 1,
    borderRadius: 10,
    height: 30,
    width: 100,
  },
  btnPress: {
    borderColor: 'blue',
    borderWidth: 1,
    height: 30,
    width: 100,
  },
  btn: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    display: 'flex'
  }
});
export default function App() {
  const [isPress, setIsPress] = React.useState(false);

  const touchProps = {
    activeOpacity: 1,
    underlayColor: 'blue',
    style: isPress ? styles.btnPress : styles.btnNormal,
    onHideUnderlay: () => setIsPress(false),
    onShowUnderlay: () => setIsPress(true),
    onPress: () => console.log('hello'),
  };

  return (
    <View style={styles.container}>
      <TouchableHighlight {...touchProps}>
        <Text style={styles.btn}>Click here</Text>
      </TouchableHighlight>
    </View>
  );
}

to define the touchProps object that we use to set the props of TouchableHighlight.

We set onHideUnderlay to a function that runs when the underlay is hidden.

We set onShowUnderlay to a function that runs when the underlay is shown.

Both functions change the isPress state.

And we apply different styles for the TouchableHighlight according to the value of isPress.

Conclusion

To change button style on press in React Native, we can wrap our button with the TouchableHighlight component.

Categories
JavaScript Answers React Native Answers

How to change listening port with React Native?

Sometimes, we want to change listening port with React Native.

In this article, we’ll look at how to change listening port with React Native.

How to change listening port with React Native?

To change listening port with React Native, we can set the port option.

For instance, we run:

react-native start --port 9988

to start the dev server and make it listen to port 9988.

Conclusion

To change listening port with React Native, we can set the port option.

Categories
JavaScript Answers React Native Answers

How to repeat animation with React Native?

Sometimes, we want to repeat animation with React Native.

In this article, we’ll look at how to repeat animation with React Native.

How to repeat animation with React Native?

To repeat animation with React Native, we can use the Animated.loop method.

For instance, we write:

import * as React from 'react';
import { View, Animated, Text } from 'react-native';
import Constants from 'expo-constants';
import { Card } from 'react-native-paper';

const c = new Animated.Value(0);

export default function App() {
  React.useEffect(() => {
    Animated.loop(
      Animated.timing(c, {
        toValue: 300,
        duration: 3000,
      }),
      { iterations: 5 }
    ).start();
  }, []);

  const color = c.interpolate({
    inputRange: [0, 200, 300],
    outputRange: ['orange', 'lightgreen', 'yellow'],
  });

  return (
    <Animated.View style={{ backgroundColor: color }}>
      <Text>hello world</Text>
    </Animated.View>
  );
}

to call Animated.loop with the animation object we created from Animated.timing and an object to set the iterations to 5 to repeat the animation 5 times.

Then we call interpolate to interpolate the color for the animation.

And use color as the backgroundColor‘s value.

Conclusion

To repeat animation with React Native, we can use the Animated.loop method.