- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于使用索引堆栈在选项卡之间导航以显示相关页面的问题。我这样做是为了保持页面的滚动/状态。这工作正常。我可以通过单击选项卡更改当前显示的页面 - 也可以在每个页面内导航(每个页面都用它自己的导航器包装)。这是渲染页面的代码。
Widget build(BuildContext context) {
return IndexedStack(
index: widget.selectedIndex,
children: List.generate(widget._size, (index) {
return _buildNavigator(index);
}));
最佳答案
你找到解决办法了吗?
我发现了和你一样的问题,我尝试了这个解决方法(我还没有发现任何问题)
这个想法是制作一个新的小部件来控制进行 api 调用的小部件的可见性状态,并在它变得可见时构建它。
在您的 IndexedStack
中,用这样的小部件包装您的 _buildNavigator
:
class BaseTabPage extends StatefulWidget {
final bool isVisible;
final Widget child;
BaseTabPage({Key key, this.child, this.isVisible});
@override
State<StatefulWidget> createState() => _BaseTabPageState();
}
/*
This state is to prevent tab pages creation before show them. It'll only add the
child widget to the widget tree when isVisible is true at least one time
i.e. if the child widget makes an api call, it'll only do when isVisible is true
for the first time
*/
class _BaseTabPageState extends State<BaseTabPage> {
bool alreadyShowed = false;
@override
Widget build(BuildContext context) {
alreadyShowed = widget.isVisible ? true : alreadyShowed;
return alreadyShowed ? widget.child : Container();
}
}
例如,在我的代码中,我有类似的内容可以为每个选项卡构建导航器,其中
_selectedIndex
是
BottomNavigationBar
的选定位置,而
tabPosition
是该页在
BottomNavigationBar
中的位置
Widget _buildTabPage(int tabPosition) {
final visibility = _selectedIndex == tabPosition;
return BaseTabPage(
isVisible: visibility,
child: _buildNavigator(tabPosition),
);
}
有了这个,我有完全在子小部件中的 api 调用逻辑,底部导航对它们一无所知。
关于带有索引堆栈的 Flutter bottomNavigator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62314043/
关于使用索引堆栈在选项卡之间导航以显示相关页面的问题。我这样做是为了保持页面的滚动/状态。这工作正常。我可以通过单击选项卡更改当前显示的页面 - 也可以在每个页面内导航(每个页面都用它自己的导航器包装
我正在尝试使用 BottomNavigationView 创建一个应用程序。我添加了三个 fragment 它只工作一次但是当我尝试从 botton View 应用程序崩溃中重新选择一个项目时。这是我
我试图向用户展示位于 MainActivity 中的 Snackbar RideFragment。但 BottomNavigation 与 Snackbar 重叠,因此 Snackbar 根本不可读/
我已经根据 following thread 实现了一个计数器徽章. 然后我扩展了一下,当通知计数为 0 时从导航项中删除徽章: fun setInboxIcon(count: Int) {
我正在根据 Material Design 尝试 Android 的 BottomNavigationView 实现 但是,在 MainActivity 代码中,我收到了 OnNavigationIt
项目支持RTL;尤其是阿拉伯语。 要求是所有数字都必须以英文格式出现,即使语言选择为阿拉伯语区域设置,我们在任何地方实现它的方式通常是在 TextViews 的情况下使用以下代码: TextView
在我的应用程序中,我有一个带有 BottomNavigation 的主屏幕从 Material 设计。从这些屏幕我希望能够启动其他 fragment ,其中 BottomNavigation被隐藏以便
如何制作BottomNavigation组件粘性?为什么默认情况下不具有粘性? 最佳答案 您可以使用以下 CSS 使 BottomNavigation 粘在屏幕底部: const styles = {
我使用background=ripple在BottomNavigation中制作按压效果,但在我的例子中,MyBottomNavigation颜色是深色的,因此由于波纹效果颜色是灰色的,它看起来变得不
我想在我的项目中设计这个布局: 很多人用 google 搜索 AFIAK 是一些可以在 Android 上设计的库,但我找不到它,我从 Android Material 网站截取了这个屏幕截图。谁能帮
我正在尝试向我的导航栏添加更多高度,当我使用 layout_gravity 中心上的栏更改高度时,它会像我预期的那样阴影,但是当我将其锚定到底部时,高度被覆盖或阴影被重置。 布局: 外
我正在尝试实现 Nagivation来自 Android 架构组件。我能够成功地浏览我的 fragment 。我试图将它附加到我的底部导航,但我无法正确使用它。我可以使用 Navigation.fin
我一整天都在寻找答案,但没有找到适合这个问题的任何解决方案。 我正在寻找一种方法来创建类似于 Instagram 或 PlayKiosk 应用的 BottomNavigation 用法。 fragme
我一直在四处寻找,但找不到有助于解决这个特定问题的答案。我的应用程序有一个自定义的滑入滑出效果,使用方式如下: Intent intent = new Intent(getApplicationCon
我正在尝试从 Material UI 实现 BottomNavigation 组件,但当用户使用浏览器的后退和前进按钮时遇到问题。 问题是,BottomNavigation 组件被配置为在按下导航项按
我有一个显示几个项目的 BottomNavigation,使用此代码我设法在所需的项目处启动 BottomNavigation getSupportFragmentManager().beginTra
所以我不知道如何在 RecyclerView 下的 LinearLayout 中对齐我的底部导航。这些项目是 RecyclerView:
在我的应用程序中,我想显示 CoordinatorLayout 的 BottomNavigation 底部,为此我编写了以下代码:
是否可以通过 NavigationContoller 在 BottomNavigation 控制的 Fragment 之间传递 Parcelable 对象/参数? 这是我的应用程序的流程,用户登录应用
NS 6.5已经发布,有一个新功能:动态创建选项卡和底部导航... 我按照他们的示例进行操作,但似乎不起作用,请在 Playground 上查看下面的代码: https://play.nativesc
我是一名优秀的程序员,十分优秀!