Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmTpGs 59 of 125 menu
◀ ▶

GestureDetector и onTap в Flutter

Кнопки Material покрывают типичные случаи, но нажать можно и на карточку, картинку или блок текста. Виджет GestureDetector оборачивает любого потомка и слушает жесты. Для простого касания достаточно onTap.

Внутри child лежит то, что видит пользователь - например Card с ListTile. Внешний вид потомка при этом не меняется. При тапе вызывается переданная функция. Как и у кнопок, пока ограничимся debugPrint без смены данных на экране:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: HomePage())); } class HomePage extends StatelessWidget { const HomePage({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: ListView( padding: const EdgeInsets.all(12), children: [ GestureDetector( onTap: () { debugPrint('Open: Weather'); }, child: Card( child: ListTile( title: const Text('Weather'), subtitle: const Text('+18°'), ), ), ), ], ), ); } }

Оберните Card с одним ListTile в GestureDetector. По onTap выведите 'Card tapped' через debugPrint.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить