簡體   English   中英

Flutter:如何為兩個小部件設置一個水龍頭處理程序?

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

我有一個IconButtonText作為Row小部件的子級。 當前,當用戶點擊日歷圖標時,會處理其onPressed並顯示日歷以選擇日期。 但是,我想擴展點擊區域並允許日歷打開,即使用戶點擊Text小部件也是如此。 實現此目的的最佳方法是什么?

請注意,這一Row有更多的孩子。 我只想處理這兩個孩子的水龍頭。

在此處輸入圖像描述

InkWell可能會為您解決問題。

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'),
        ),
      ),
    );
  }
}

回應編輯:

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'),
            ),
          ],
        ),
      ),
    );
  }
}

將整Row包裝在GestureDetector中,如下所示

GestureDetector(
  onTap: () {
    // what your want here
  }
  child: Row(
    // ...
  ),
),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM