为什么AppBar的automaticImplyLeading没有效果?

问题描述 投票:0回答:2
AppBar(
  automaticallyImplyLeading: false, // Has no impact of true/false
  title: Text('AppBar'),
)

文档提及

automaticallyImplyLeading:如果为 true 并且leading 为 null,则自动尝试推断前导小部件应该是什么。如果为 false 并且前导为空,则为标题提供前导空格。

在我的代码中,

leading
null
,但设置
automaticallyImplyLeading
属性对标题没有影响。但文档说的是别的东西。

flutter flutter-layout
2个回答
2
投票

automaticallyImplyLeading: false
用于从第二个屏幕删除后退按钮(当用户从第一个屏幕导航到第二个屏幕时出现这种情况,这是 flutter 默认行为)。显示后退按钮/前导小部件颤动会占用 AppBar 左侧的一些空间。

如果为 false 并且前导为空,则为标题提供前导空格。

根据上面的说法,如果为 false,则将前导小部件/后退按钮的默认空间赋予应用栏的标题小部件。

appBar: AppBar(
        automaticallyImplyLeading: false, // Remove back button
        title: const Text('This is simple Text of App Bar for second screen'),
      ),

automaticallyImplyLeading: false,

enter image description here


0
投票

为了让您注意到差异,您可以在使用上一屏幕中的

AppBar.automaticallyImplyLeading
导航到的新屏幕中设置
PageRoute

这是我从另一个小部件屏幕导航到的屏幕

Scaffold(
  appBar: AppBar(
    automaticallyImplyLeading: false,
  ),
);

https://i.sstatic.net/IYj6vsaW.png

这是同一屏幕,其中

automaticallyImplyLeading
设置为
true

Scaffold(
  appBar: AppBar(
    automaticallyImplyLeading: true,
  ),
);

https://i.sstatic.net/Tpks4eJj.png

这里框架自动确定领先的小部件应该是什么

此外,如果实际配置了

AppBar.leading
,则不会注意到任何变化

© www.soinside.com 2019 - 2024. All rights reserved.