Flutter 字符串中单个字母的颤振触摸事件
我希望能够检测字符串中单个字母的触摸事件 例如,如果字符串是“HELLO”,我需要区分轻敲“H”或“O”。实际字符串将比该字符串长,大约500个字符Flutter 字符串中单个字母的颤振触摸事件,flutter,dart,Flutter,Dart,我希望能够检测字符串中单个字母的触摸事件 例如,如果字符串是“HELLO”,我需要区分轻敲“H”或“O”。实际字符串将比该字符串长,大约500个字符 天真地,我考虑将所有字符包装到单独的文本小部件中。有更好的方法吗?你可以用手势检测器试试。但即使这样,你也可能需要使用单独的字母作为单独的手势检测器 看看这个例子,我在这里创建了一个示例,通过这个示例,您将对您的实现有一个想法 import 'package:flutter/material.dart'; void main() => r
天真地,我考虑将所有字符包装到单独的文本小部件中。有更好的方法吗?你可以用手势检测器试试。但即使这样,你也可能需要使用单独的字母作为单独的手势检测器
看看这个例子,我在这里创建了一个示例,通过这个示例,您将对您的实现有一个想法
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SampleApp(),
debugShowCheckedModeBanner: false,
);
}
}
class SampleApp extends StatefulWidget {
@override
_SampleAppState createState() => _SampleAppState();
}
class _SampleAppState extends State<SampleApp> {
List<String> sampleStrings = ['H', 'E', 'L', 'L', "O"];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Your heading'),
),
body: Container(
height: 80,
padding: EdgeInsets.all(15),
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: sampleStrings.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
print('This is the tapped letter : ${sampleStrings[index]}');
},
child: Card(
color: Colors.white,
margin: EdgeInsets.all(8),
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Text(
'${sampleStrings[index]}',
style: TextStyle(color: Colors.black),
),
)),
);
},
),
),
);
}
}
导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主页:SampleApp(),
debugShowCheckedModeBanner:false,
);
}
}
类SampleApp扩展StatefulWidget{
@凌驾
_SampleAppState createState();
}
类_SampleAppState扩展状态{
列出样本字符串=['H','E','L','L','O'];
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“您的标题”),
),
主体:容器(
身高:80,
填充:边缘设置。全部(15),
子项:ListView.builder(
收缩膜:对,
滚动方向:轴水平,
itemCount:SampleString.length,
itemBuilder:(上下文,索引){
返回手势检测器(
onTap:(){
print('这是抽头字母:${sampleStrings[index]}');
},
孩子:卡片(
颜色:颜色,白色,
保证金:全部(8),
孩子:填充(
填充:常数边集全部(10.0),
子:文本(
“${sampleString[index]}”,
样式:TextStyle(颜色:Colors.black),
),
)),
);
},
),
),
);
}
}
让我知道它是否有效