Flutter, InkResponse на таблице, как иметь spla sh через клетки? - PullRequest
0 голосов
/ 05 марта 2020

Я строю цифровую панель с помощью флаттера, используя таблицу. Как обычно в кнопках материалов, я бы хотел, чтобы моя цифровая клавиатура имела эффект spla sh, когда пользователь нажимает на нее. В настоящее время я достигаю этого, оборачивая InkResponse вокруг таблицы следующим образом (я удалил отступы и тому подобное для удобства чтения):

  Widget buildButton(BuildContext context, int displayNum) {
    return FlatButton(
      child: Text(displayNum.toString()),
      onPressed: () => controller.parseInput(displayNum),
    );
  }

  @override
  Widget build(BuildContext context) {
    return InkResponse(
      child: Container(
        decoration: BoxDecoration(
          color: backgroundColor,
          borderRadius: BorderRadius.circular(10),
        ),
        child: Table(
          children: <TableRow>[
            TableRow(
              children: [1, 2, 3].map((i) => buildButton(context, i)).toList(),
            ),
            TableRow(
              children: [4, 5, 6].map((i) => buildButton(context, i)).toList(),
            ),
            TableRow(
              children: [7, 8, 9].map((i) => buildButton(context, i)).toList(),
            ),
            TableRow(
              children:
                  [-1, 0, -2].map((i) => buildButton(context, i)).toList(),
            ),
          ],
        ),
      ),
    );
  }

, что приводит к this .

Теперь, чтобы настроить пользовательский интерфейс, я бы хотел, чтобы эффект spla sh не останавливался на границах TableCell, а излучался наружу из повернутого местоположения на таблице.

В документах говорится о том, как clip InkResponse (обычно с InkWell), но я хочу наоборот: пусть Ink / Spla sh не останавливается на границах детей, но go по всей таблице.

Anyone знает, как добиться этого эффекта?

...