dart 抖动推更换页

jdzmm42g  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(111)

这是我的第二页按钮,转到第三页。

onPressed: () {
  Navigator.push(context, MaterialPageRoute(builder:
    (context) => MapsPage(index: widget.index))
  );
},

这是第三页的按钮,它会把信息送回第二页,但当按下第二页回到第一页时,它必须按两次,这就像现在换了一张新面孔。

void saveAddress() {
  var lat = centerMap.latitude;
  var lng = centerMap.longitude;

  Navigator.of(context).pushReplacement(MaterialPageRoute(
    builder: (_) => EditAddressPage(
      index: widget.index,
      lat: lat.toString(),
      lng: lng.toString(),
    ),
  ));

  print("Saving address: Latitude: $lat, Longitude: $lng");
}
tct7dpnv

tct7dpnv1#

pushReplacement方法用新的路线替换导航堆栈中的当前路线,而不是将新路线压入堆栈顶部。这意味着当您按下后退按钮时,您不会返回到上一条路线(第2页),而是返回到被替换的路线(第1页)。
要解决此问题,您可以在从第3页导航到第2页时使用push方法而不是pushReplacement。这将向导航堆栈添加新路线,而不是替换当前路线,并允许您在按下后退按钮时导航回第2页。

相关问题