Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 字符串中单个字母的颤振触摸事件_Flutter_Dart - Fatal编程技术网

Flutter 字符串中单个字母的颤振触摸事件

Flutter 字符串中单个字母的颤振触摸事件,flutter,dart,Flutter,Dart,我希望能够检测字符串中单个字母的触摸事件 例如,如果字符串是“HELLO”,我需要区分轻敲“H”或“O”。实际字符串将比该字符串长,大约500个字符 天真地,我考虑将所有字符包装到单独的文本小部件中。有更好的方法吗?你可以用手势检测器试试。但即使这样,你也可能需要使用单独的字母作为单独的手势检测器 看看这个例子,我在这里创建了一个示例,通过这个示例,您将对您的实现有一个想法 import 'package:flutter/material.dart'; void main() => r

我希望能够检测字符串中单个字母的触摸事件

例如,如果字符串是“HELLO”,我需要区分轻敲“H”或“O”。实际字符串将比该字符串长,大约500个字符


天真地,我考虑将所有字符包装到单独的文本小部件中。有更好的方法吗?

你可以用手势检测器试试。但即使这样,你也可能需要使用单独的字母作为单独的手势检测器


看看这个例子,我在这里创建了一个示例,通过这个示例,您将对您的实现有一个想法

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),
),
)),
);
},
),
),
);
}
}
让我知道它是否有效