Stack(
children: <Widget>[
Container(
height: screenHeidth,
width: screenWidth,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/fondo1.png"),
fit: BoxFit.cover,
),
),
child: Padding(
padding: const EdgeInsets.only(top: 30, right: 20.0),
child: Align(
alignment: Alignment.topRight,
child: OutlineButton(
padding: EdgeInsets.only(left: 30, right: 30.0),
onPressed: () {
print("press");
Navigator.push(context,
MaterialPageRoute(builder: (context) => Safe()));
},
child: Text(
"SALTAR",
style: TextStyle(color: Colors.white),
),
borderSide: BorderSide(
color: Colors.white, style: BorderStyle.solid),
shape: StadiumBorder(),
)),
),
),
],
);
我有点担心,花一些钱来设计这个设计..现在事实证明,我的小按钮不能执行我需要的动作,代码的其他部分在必要时没有放置它可以添加一些设计照片
答案 0 :(得分:0)
尝试使用命名路线:
在“安全”页面的“ Stless”或“ Stfull”下定义路由名称:
static const routeName = '/your-safe-page';
转到main.dart文件并在MaterialApp(
initialRoute: '/',
routes: {
'/': (ctx) => YourHomeScreen(),
Safe.routeName: (ctx) => Safe(),
},
再试一次,然后使用此方法重试:
onPressed: () {
Navigator.of(context).pushNamed(Safe.routeName);
}
答案 1 :(得分:0)
我无法复制您提到的问题。 onPress
事件会正确触发并导航到下一个屏幕。下面的示例工作代码:
return Scaffold(
backgroundColor: Colors.black,
body: Stack(
children: <Widget>[
Container(
height: 200,
width: 200,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/placeholder.png"),
fit: BoxFit.cover,
),
),
child: Padding(
padding: const EdgeInsets.only(top: 30, right: 20.0),
child: Align(
alignment: Alignment.topRight,
child: OutlineButton(
padding: EdgeInsets.only(left: 30, right: 30.0),
onPressed: () {
print("press");
Navigator.push(context,
MaterialPageRoute(builder: (context) => Safe()));
},
child: Text(
"SALTAR",
style: TextStyle(color: Colors.white),
),
borderSide: BorderSide(
color: Colors.white, style: BorderStyle.solid),
shape: StadiumBorder(),
)),
),
),
],
)
);
}
}
class Safe extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text('Test'),
),
);
}
}
它将在控制台中正确打印输出:
I/flutter ( 4357): press
I/flutter ( 4357): press
您可以将您的代码与上面的代码进行比较,并确定代码中缺少的内容。
希望这会有所帮助。