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

Виджет Ink

Виджет Ink ставят под InkWell или InkResponse, чтобы ripple шёл по форме. Оформление задают в decoration, размер - в width и height. Дочерний виджет необязателен и передаётся в child.

Синтаксис

Ink( decoration: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(8), ), child: child, )

Параметры

Параметр Описание
decoration Фон и форма под чернилами. Тип BoxDecoration.
width Ширина области Ink.
height Высота области Ink.
padding Отступы вокруг child внутри Ink.
child Дочерний виджет поверх декорации.

Пример

Давайте сделаем карточку с InkWell поверх Ink:

import 'package:flutter/material.dart'; class InkCard extends StatefulWidget { const InkCard({super.key}); @override State<InkCard> createState() => _InkCardState(); } class _InkCardState extends State<InkCard> { var label = 'abcde'; @override Widget build(BuildContext context) { return Material( color: Colors.transparent, child: InkWell( onTap: () { setState(() { label = '12345'; }); }, child: Ink( decoration: BoxDecoration( color: Colors.cyan.shade100, borderRadius: BorderRadius.circular(12), ), child: Padding( padding: const EdgeInsets.all(24), child: Text(label), ), ), ), ); } } void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: InkCard(), ), ), ), ); }

На экране голубая скруглённая карточка; нажатие даёт ripple по её форме и меняет текст.

Пример

Давайте зададим фиксированный размер Ink без child:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: Material( child: Ink( width: 160, height: 56, decoration: BoxDecoration( color: Colors.deepOrange.shade200, ), ), ), ), ), ), ); }

На экране по центру оранжевый прямоугольник заданного размера.

Смотрите также

  • виджет InkWell,
    который вешает onTap и рисует ripple
  • виджет InkResponse,
    который рисует круглое или произвольное пятно
  • класс BoxDecoration,
    который описывает фон Ink
  • виджет GestureDetector,
    который ловит жесты без Material чернил
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить