gpt4 book ai didi

dart - CupertinoTabBar 阻止当前选项卡底部如何避免这种情况还是默认行为

转载 作者:行者123 更新时间:2023-12-03 02:43:55 24 4
gpt4 key购买 nike

我将 BottomNavigatorBar 更改为 CupertinoTabBar 并且它不会压缩当前的 Tab

换句话说,我无法显示当前选项卡底部的某些信息,因为 CupertinoTabBar 阻止了它。

我不知道这是 Cupertino 样式的默认行为,但我需要解决它。我尝试用 CupertinoTabView 和/或 CupertinoPageScaffold 包裹我的页面,两者都不起作用。

你有什么建议吗?

enter image description here enter image description here

这是我的相关代码:

    return CupertinoTabScaffold(
tabBar: CupertinoTabBar(currentIndex: 2, items: [
BottomNavigationBarItem(
icon: Icon(Icons.explore), title: Text('Explore')),
BottomNavigationBarItem(
icon: Icon(Icons.card_travel), title: Text('Adventure')),
BottomNavigationBarItem(
icon: Icon(Icons.search), title: Text('Search')),
BottomNavigationBarItem(
icon: Icon(Icons.map), title: Text('Create Tour')),
BottomNavigationBarItem(
icon: Icon(Icons.person), title: Text('Profile')),
]),
tabBuilder: (context, index) {
switch (index) {
case 0:
return CupertinoTabView(
builder: (context) => ExplorePage(),
);
break;
case 1:
return AdventurePage();
break;
case 2:
return CupertinoTabView(
builder: (context) => SearchTourPage(),
);
break;
case 3:
return BasicRouteInfoForm();
break;
case 4:
return ProfilePage();
break;
default:
return SearchTourPage();
}
},
);

最佳答案

只需提供不透明的backgroundColor,即不透明度为1.0(不透明度默认小于1.0):

return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
backgroundColor: CupertinoTheme.of(context).barBackgroundColor.withOpacity(1.0),
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
// ...

它实现了与 CupertinoNavigationBar 相同的逻辑。 :

If translucent, the main content may slide behind it. Otherwise, the main content's top margin will be offset by its height.

documentation对此不是很清楚,可能是因为这是 Cupertino 导航小部件的通用逻辑(至少是 CupertinoTabBarCupertinoNavigationBar)并且被认为是直观的。

看起来像 this method影响主要内容和标签栏的定位:

/// Indicates whether the tab bar is fully opaque or can have contents behind
/// it show through it.
bool opaque(BuildContext context) {
final Color backgroundColor =
this.backgroundColor ?? CupertinoTheme.of(context).barBackgroundColor;
return CupertinoDynamicColor.resolve(backgroundColor, context).alpha == 0xFF;
}

关于dart - CupertinoTabBar 阻止当前选项卡底部如何避免这种情况还是默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55318000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com