Flutter - область нажатия пользовательских кнопок - PullRequest
0 голосов
/ 13 января 2019

Я создаю приложение Flutter, в котором большая часть экрана будет занята круглой кнопкой.

Я уже пробовал несколько разных подходов, чтобы создать круглую кнопку, но у меня всегда возникала одна и та же проблема: область «надавливания» на самом деле не круглая, а прямоугольная.

Вот пример, полученный с FloatingActionButton:

Example

Для кнопок небольшого размера это на самом деле не проблема - я бы даже сказал, что это как-то полезно - но в моем случае это очень раздражает.

Итак, мой вопрос: возможно ли ограничить область соприкосновения кругом?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Если вы хотите сохранить всплеск во время нажатия, вы можете сделать что-то вроде этого:

    Material(
              color: Colors.green,
              shape: CircleBorder(),
              elevation: 5.0,
              child: InkWell(
                borderRadius: BorderRadius.circular(100.0),
                onTap: () => print("here"),
                child: Container(
                  height: 200.0,
                  width: 200.0,
                  decoration: BoxDecoration(
                    shape: BoxShape.circle,
                  ),
                  child: Icon(Icons.receipt),
                ),
              ),
            ),
0 голосов
/ 13 января 2019

Кажется, это работает, я не знаю, правильно ли это делать или есть ли лучший путь, но вот, пожалуйста.

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
        color: Colors.blue,
        child: Center(
          child: GestureDetector(
            onTap: () {
              print('clicky');
            },
            child: ClipOval(
              child: Container(
                width: 200,
                height: 200,
                color: Colors.red,
              ),
            ),
          ),
        ),
      ),
    );
  }
}
...