首页 > 解决方案 > 链接文本以改变屏幕颤动

问题描述

我需要突出显示附加图像中的“创建帐户”文本,所以我使用了“TapGestureRecognizer”。但是,我找不到在点击“创建帐户”时更改屏幕的方法。请有人告诉我如何使用“TapGestureRecognizer”来改变屏幕,或者我可以用来实现相同目标的任何其他首选解决方案。

在此处输入图像描述

  margin: const EdgeInsets.only(top: 25.0),
  child: RichText(
    text: TextSpan(
        children: [
          TextSpan(
              text: ‘I do not have an account’,
              style: TextStyle(color: Colors.black87)
          ),
          TextSpan(
              text: ' Create account’,
              style: new TextStyle(color: Color.fromRGBO(24, 44, 228, 1)),
              recognizer: new TapGestureRecognizer(
              )
          ),
        ]
    ),
  ),
)

class CreateAccount extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(
        title: Text('Create account'),
      ),
    );
    throw UnimplementedError();
  }
}



标签: flutter

解决方案


我在 dartpad.dev 中测试了下面的代码,它运行良好。
你会检查其他代码还是让我知道结构?

import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return RichText(
    text: TextSpan(
        children: [
          TextSpan(
              text: 'I do not have an account',
              style: TextStyle(color: Colors.black87)
          ),
          TextSpan(
              text: ' Create account',
              style: new TextStyle(color: Color.fromRGBO(24, 44, 228, 1)),
              recognizer: TapGestureRecognizer()
                  ..onTap = () {
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (context) => CreateAccount()),
              );
            }
          ),
        ]
    ),
    );
  }
}



class CreateAccount extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Create account'),
      ),
    );
    throw UnimplementedError();
  }
}

推荐阅读