Flutter onPress кнопки на ListView вызывается автоматически (когда он становится видимым). Это ошибка?

Как видно из заголовка onPressed, кнопка в ListView вызывается автоматически.

В настоящее время у меня есть что-то вроде этого (это грубый набросок кода). Обычно, когда в каждом ряду есть кнопка, и когда кнопка отображается на экране, вызывается ее onClick. Не уверен, что это ошибка во флаттере или я делаю что-то не так, какие-либо предложения?

class ModelEmployeeRow extends StatelessWidget
{

    dynamic getInviteButton(String text, {var lambda,var borderRadius,var height})
    {
        final skillTextStyle = baseTextStyle.copyWith(
                color: Colors.white,//const Color(0xffb6b2df),
                fontSize: 11.0,
                fontWeight: FontWeight.w200
                );

        var container = new Container(
            alignment: Alignment.center,
            margin:EdgeInsets.fromLTRB(0.0,0.0,100.0,0.0),
            padding:EdgeInsets.fromLTRB(0.0,5.0,0.0,5.0),
            decoration: new BoxDecoration(
                borderRadius: new BorderRadius.all(new Radius.circular(4.0)),
                color: Colors.green
                ),
            child: new Text(text, style:skillTextStyle),
            );


        var button = new FlatButton(
                onPressed: inviteClicked(employee),
                child: container
                );

        return button;
    }


    @override
    Widget build(BuildContext context)
    {
        var stacked =  new Stack(
            children: <Widget>
            [
                //mainContainer,
                getInviteButton("Test"),
                employeeThumbnail,
            ],
            );

        return new Container(
            child: stacked,
            );

    }

}

и сторона представления списка - это

 var emplyeeListView = new ListView.builder(
            itemCount: employeeListShared.length,
            padding: new EdgeInsets.symmetric(vertical: 16.0),
            itemBuilder: (context, index) {
                return new ModelEmployeeRow(employeeListShared[index]);
            },
            );

Теперь, когда строка становится видимой называется нажатие кнопки.

9
задан MistyD 18 May 2018 в 02:21
поделиться