将onTap函数传递给Flutter中的另一个小部件

时间:2019-09-15 19:00:42

标签: flutter dart

我的想法是实现_buildTile小部件,当点击该小部件时,它会将我重定向到另一个名为Booking的屏幕,但是该功能无法正常工作,因为它不会重定向到所需的“预订”屏幕

有人可以指出我出了错吗?

Widget _buildTile(Widget child, {Function() onTap}) {
    return Material(
        elevation: 14.0,
        borderRadius: BorderRadius.circular(12.0),
        shadowColor: Color(0x802196F3),
        child: InkWell(
            // Do onTap() if it isn't null, otherwise do print()
            onTap: onTap != null
                ? () => onTap()
                : () {
                    print('Not set yet');
                  },
            child: child));
  }
_buildTile(
    Padding(..), 
    onTap: (){
        new MaterialPageRoute(
           builder: (context) => BookingScreen(
                                 uid: cabId,))
           })

1 个答案:

答案 0 :(得分:0)

您没有使用Navigator

用这个替换您的:

_buildTile(
  Padding(...),
  onTap: () {
    Navigator.push(context, MaterialPageRoute(builder: (context) => BookingScreen(uid:cabId)));
  },
);