我们能为Flutter中的TextWidget文本提供可点击性吗



我想要的是能够点击我指定的单词,当我点击它时,它会显示一个带有Easy Loading的标注。

class MyHomePage extends StatelessWidget {
const MyHomePage({ Key? key }) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(t
appBar: AppBar(title: Text("Risale-i Nur"),),
body: Column(
children: [
Text("İhlas Risalesi - 1. Düstur", style: Theme.of(context).textTheme.headlineLarge),
Text("""Eğer o razı olsa bütün dünya küsse ehemmiyeti yok. O razı olduktan ve kabul ettikten sonra, isterse ve hikmeti iktiza ederse sizler istemek talebinde olmadığınız halde, halklara da kabul ettirir, onları da razı eder. Onun için bu hizmette doğrudan doğruya yalnız Cenab-ı Hakk’ın rızasını esas maksat yapmak gerektir.""", style: Theme.of(context).textTheme.bodyMedium,),
],
),
);
}
}
class Strings{
static const Map<String, String> words = {"iktiza":"mecburiyet", "ehemmiyeti":"kıymeti", "tesir":"etki"};
/* 

onPressed/onTap(){
EasyLoading.showToast(words[KEY], dismissOnTap: true);
} */
}

//我试过这个,但当然我不能用文本写一个小部件

Widget mean(String key){
return GestureDetector(
child: Text(key),
onTap: (){
EasyLoading.showToast(words[key], dismissOnTap: true);
}
);
}

您有几种方法可以做到这一点。

您可以使用RichText识别器

import 'package:flutter/gestures.dart'; ...
RichText(
text: TextSpan(text: 'Non touchable. ', children: [
TextSpan(
text: 'Tap here.',
recognizer: TapGestureRecognizer()..onTap = () => print('Tap Here onTap'),
)
]),
);

您可以将文本小部件包装在手势检测器小部件中

GestureDetector(
onTap: () => function,
child: Text(
'Tap here.',
)
);

有一个名为TextButton的小部件,你可以查看,演示和链接如下,

TextButton(
style: TextButton.styleFrom(
textStyle: const TextStyle(fontSize: 20),
),
onPressed:() {
doSomthing();
},
child: const Text('Disabled'),
)

文本按钮小部件

只要用GestureDetector()包装您的文本小部件,它就会使其可点击。

GestureDetector(onTap: () {
//EasyLoading.showToast(words[KEY], dismissOnTap: true);
}, child: Text("data")),

相关内容

  • 没有找到相关文章

最新更新