当从一页滑动到另一幅初始页面时,我有一个TabBarview。 我不希望在两面都显示启动突出显示。
尽管tabbarview具有物理特性,并且将其设置为bouncingscrollphysics()时,该形状不应出现,就像列表视图中出现的一样,但是没有任何变化。
尝试了另一种解决方案:我用主题包装了tabbarview,并将突出显示颜色和初始颜色更改为colors.transparent,但这也不起作用。这是我的TabBarview的代码。 这是用户界面及其外观。
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(),
),
)
答案 0 :(得分:1)
如果您不想在TabBar的原始代码中进行重大更改,请使用以下程序包
https://pub.dev/packages/flutter_tab_bar_no_ripple
===对于您的用例===
为简单起见,将物理更改为BouncingScrollPhysics()
如果您不希望这种弹力效果,请查看下面的链接
答案 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;
}
}
答案 2 :(得分:0)
将物理学更改为BouncingScrollPhysics()