Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
254 views
in Technique[技术] by (71.8m points)

Flutter: How to have one tap handler for two widgets?

I've got an IconButton and Text as the children of a Row widget. Currently when user taps on the calendar icon, its onPressed is handled and a calendar is shown to pick a date. However I want to extend the tapping area and allow the calendar to open even when user taps on the Text widget. What's the best way to achieve this purpose?

Please note that there are more children in this Row. I only want to handle the tap on these two children.

enter image description here

question from:https://stackoverflow.com/questions/65864607/flutter-how-to-have-one-tap-handler-for-two-widgets

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

InkWell might do the trick for you.

import 'package:flutter/material.dart';

class DoubleTapPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: InkWell(
          child: Row(
            children: [
              Icon(Icons.calendar_today),
              Text('2021 Jan 23')
            ],
          ),
          onTap: () => print('Calendar or Date tapped'),
        ),
      ),
    );
  }
}

In response to the edit:

import 'package:flutter/material.dart';

class DoubleTapPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Row(
          children: [
            Text('Outside the well'),
            InkWell(
              child: Row(
                children: [
                  Icon(Icons.calendar_today),
                  Text('2021 Jan 23')
                ],
              ),
              onTap: () => print('Calendar or Date tapped'),
            ),
          ],
        ),
      ),
    );
  }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...