Cursos / Informática para Internet / Desenvolvimento para Dispositivos Móveis / Aula
Veremos agora como criar links em componentes que não necessariamente são botões. Inicialmente, vamos copiar o código abaixo para utilizá-lo nesta aula.
import React from 'react';
import { SafeAreaView, Text, StyleSheet, View, Button } from 'react-native';
export default function App() {
return (
<SafeAreaView style={styles.container}>
<View style={styles.button}>
<Text style={styles.text}>Clique aqui!</Text>
</View>
<Button title="Clique aqui!" />
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
button: {
backgroundColor: 'powderblue',
color: 'white',
margin: 20
},
text: {
color: '#000',
padding: 15
}
})
No código acima, temos um componente clicável, o button, porém, também temos uma View que traz a aparência de um botão, mas não clicável.
O componente TouchableHighlight envolve algo que o desenvolvedor deseja que seja clicável e poderá executar ações quando clicado, através da propriedade onPress.
Ademais, o TouchableHighlight tem a propriedade underlayColor, que ajusta a cor subjacente ao botão, que por padrão é preto.
Veja abaixo um exemplo de uso do componente:
<TouchableHighlight underlayColor='white' onPress={() => { alert('Clicou aqui!') }}>
<View style={styles.button}>
<Text style={styles.text}>Clique aqui!</Text>
</View>
</TouchableHighlight>
Além do TouchableHighlight, temos o TouchableNativeFeedback. Esse, porém, deve ser utilizado apenas para dispositivos android que têm o comportamento nativo que o componente busca trazer.
Esse comportamento nativo é uma animação que altera de forma suave a cor do botão ao receber o clique. A cor da animação é definida através da propriedade background.
Acompanhando a aula, implemente essas funcionalidades conforme o código abaixo:
import React from 'react';
import { SafeAreaView, Text, StyleSheet, View, Button, TouchableHighlight, TouchableNativeFeedback } from 'react-native';
export default function App() {
return (
<SafeAreaView style={styles.container}>
<TouchableNativeFeedback background={TouchableNativeFeedback.Ripple('red')} underlayColor='white' onPress={() => { alert('Clicou aqui!') }}>
<View style={styles.button}>
<Text style={styles.text}>Clique aqui!</Text>
</View>
</TouchableNativeFeedback>
<Button title="Clique aqui!" />
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
button: {
backgroundColor: 'powderblue',
color: 'white',
margin: 20
},
text: {
color: '#000',
padding: 15
}
})
Versão 5.3 - Todos os Direitos reservados