如何在Flutter中删除tabbarview的蓝色/灰色滚动动画?

时间:2019-08-29 14:52:40

标签: flutter splash-screen tabbar

当从一页滑动到另一幅初始页面时,我有一个TabBarview。  我不希望在两面都显示启动突出显示。

尽管tabbarview具有物理特性,并且将其设置为bouncingscrollphysics()时,该形状不应出现,就像列表视图中出现的一样,但是没有任何变化。

尝试了另一种解决方案:我用主题包装了tabbarview,并将突出显示颜色和初始颜色更改为colors.transparent,但这也不起作用。这是我的TabBarview的代码。 这是用户界面及其外观。

enter image description here

 Theme(
                  data: new ThemeData(
                      splashColor: Colors.transparent,
                      highlightColor: Colors.transparent),
                  child: TabBarView(
                    physics: BouncingScrollPhysics(),
                    controller: _controller,
                    children: model.types.map((String type) {
                      List<Subscription> subssOfThisType =
                          model.historySubscription.where((Subscription sub) {
                        return sub.package.name == type;
                      }).toList();

                      final cards = subssOfThisType.map(
                        (s) {
                          return HistoryCard(
                            sub: s,
                          );
                        },
                      ).toList();

                      return ListView(
                        physics: BouncingScrollPhysics(),
                        padding:
                            EdgeInsets.symmetric(horizontal: 14, vertical: 8),
                        children: cards ?? Container(),
                      );
                    }).toList(),
                  ),
                )

3 个答案:

答案 0 :(得分:1)

如果您不想在TabBar的原始代码中进行重大更改,请使用以下程序包

https://pub.dev/packages/flutter_tab_bar_no_ripple

===对于您的用例===

为简单起见,将物理更改为BouncingScrollPhysics()

如果您不希望这种弹力效果,请查看下面的链接

https://stackoverflow.com/a/51119796/10104608

答案 1 :(得分:1)

您想尝试 ScrollConfiguration 吗?

效果很好。

body: ScrollConfiguration(
  behavior: MyBehavior(),
  child: const TabBarView(
    children: [
      TabPage(icon: Icons.directions_car),
      TabPage(icon: Icons.directions_bike),
    ],
  ),
),
class MyBehavior extends ScrollBehavior {
  @override
  Widget buildViewportChrome(
      BuildContext context, Widget child, AxisDirection axisDirection) {
    return child;
  }
}

https://stackoverflow.com/a/51119796/9819094

答案 2 :(得分:0)

将物理学更改为BouncingScrollPhysics()