I'm just beginner on flutter dev. I'd like to insert an URL to the text BulaANVISA (below Epinefrina box), and that will lead to this site "https://consultas.anvisa.gov.br/#/bulario/q/?numeroRegistro=103870078"
I've tried multiple ways, but I always get an error message. Could you help me figure this out?
class Antihistaminicos extends StatefulWidget {
const Antihistaminicos({Key? key}) : super(key: key);
@override
State<Antihistaminicos> createState() => _AntihistaminicosState();
}
class _AntihistaminicosState extends State<Antihistaminicos> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
backgroundColor: Colors.teal,
centerTitle: true,
title: Text(
'Anti-histamínicos',
style: TextStyle(
fontFamily: 'fonts/Quicksand-Light.ttf',
fontSize: 22,
),
),
),
body: SingleChildScrollView(
child: Container(
child: (Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Padding(padding: EdgeInsets.only(bottom: 10)),
Text('Processo alérgicos',
style: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 16,
)),
Divider(
endIndent: 45,
color: Colors.amber,
thickness: 3,
),
Divider(
height: 10,
thickness: 0,
),
const Material(
child: (const Card(
child: ListTile(
title: Text('Epinefrina'),
subtitle: Text('''Apresentação: Ampolas de 1 ml
Indicação: Reações alérgicas e anafiláticas
Posologia odontológica: Uso interno (Intramuscular)
Adultos - Aplicações intramusculares ou subcutâneas de 0,3 - 0,5 ml (1:1000), com intervalos de 15 - 20 minutos se necessário.
Pediátricos - Aplicações intramusculares ou subcutâneas de 0,001 mg por kg, com intervalos de 15 - 20 minutos se necessário.
'''),
),
)),
),
const Material(
child: (const Card(
color: Colors.white,
child: ListTile(
title: Text('Bula ANVISA'),
),
)),
),
const Material(
child: (const Card(
child: ListTile(
title: Text('Prometazina'),
subtitle: Text(
'''Apresentação: Comprimidos revestidos de 25 mg, ou ampolas de 2 ml (50 mg de prometazina)
Indicação: Reações alérgicas e anafiláticas
Posologia odontológica: Uso interno (Via oral e intramuscular)
Tomar de 2 a 6 comprimidos ao dia, de acordo com a severidade do caso. Idealmente reservar uma dose maior para o período da noite.
*Possui efeito sedativo intenso.
'''),
),
)),
),
const Material(
child: (const Card(
color: Colors.white,
child: ListTile(
title: Text('Bula ANVISA'),
),
)),
),
],
)),
),
));
}
}
CodePudding user response:
Put it into a GestureDetector
:
GestureDetector(child: Text('Bula ANVISA'), onTap: () {openLink();})
CodePudding user response:
You can use RichText
to get tap event and link the URL.
title: RichText(
text: TextSpan(
text: 'Bula ANVISA',
recognizer: TapGestureRecognizer()
..onTap = () {
print("tapped");
},
children: [], // use children to have multiple spans
),
),
Or you can use onTap
from ListTile
Material(
child: Card(
color: Colors.white,
child: ListTile(
onTap: () {
launchUrl(url)
},
title: Text('Bula ANVISA'),
),
),
),
To launch url I am using url_launcher
package.