Как предотвратить множественное касание на Flutter Inkwell - PullRequest
0 голосов
/ 19 марта 2019

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

Функция касания определяется в компоненте Inkwell (onTap: () => counterBloc.doCount(context)).

если я запускаю эти приложения и делаю мультитач, счетчик быстро поднимется, но я не хочу, чтобы это произошло. есть идеи?

ниже мой код:

  Expanded(
  child: Container(
    padding: EdgeInsets.only(right: 16),
    alignment: Alignment.centerRight,
    child: InkWell(
      onTap: () => counterBloc.doCount(context),
      child: Stack(
        alignment: Alignment.center,
        children: <Widget>[
          Image.asset("assets/images/home/tap.png", scale: 11,),
          StreamBuilder(
            initialData: 0,
            stream: counterBloc.counterStream,
            builder: (BuildContext ctx, AsyncSnapshot<int> snapshot){
              return Text("${snapshot.data}",style: TextStyle(color: Colors.white, fontSize: 120),);
            },
          ),
        ],
      )
    )
  )
)

1 Ответ

1 голос
/ 19 марта 2019

вы можете использовать AbsorbPointer

AbsorbPointer(
  absorbing: !enabled,
  child: InkWell(
    onTap: (){
      print('buttonClicked');
      setState(() {
        enabled = false;
      });
    },
    child: Container(
      width: 50.0,
      height: 50.0,
      color: Colors.red,
    ),
  ),
),

, и когда вы захотите снова включить кнопку, установите enabled в значение true, не забудьте обернуть его setState

...