Skip to content

Commit

Permalink
Add indicatorRadius parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
arnemolland committed May 12, 2023
1 parent a8864e2 commit 8acf756
Show file tree
Hide file tree
Showing 7 changed files with 157 additions and 104 deletions.
2 changes: 1 addition & 1 deletion example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class __ContentState extends State<_Content> {
child: Center(
child: Text(
_convertContent(contents[index]),
style: Theme.of(context).textTheme.headline3!.copyWith(
style: Theme.of(context).textTheme.displaySmall!.copyWith(
color: contents[index] / 10 > 0.6
? Colors.white
: Colors.black87,
Expand Down
118 changes: 69 additions & 49 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,50 @@ packages:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
version: "2.11.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.3.0"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.15.0"
version: "1.17.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
version: "1.3.1"
flutter:
dependency: "direct main"
description: flutter
Expand All @@ -59,7 +58,8 @@ packages:
dependency: "direct dev"
description:
name: flutter_lints
url: "https://pub.dartlang.org"
sha256: b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493
url: "https://pub.dev"
source: hosted
version: "1.0.4"
flutter_test:
Expand All @@ -74,34 +74,54 @@ packages:
relative: true
source: path
version: "1.0.3"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
lints:
dependency: transitive
description:
name: lints
url: "https://pub.dartlang.org"
sha256: a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c
url: "https://pub.dev"
source: hosted
version: "1.0.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.10"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
version: "1.9.1"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
version: "1.8.3"
sky_engine:
dependency: transitive
description: flutter
Expand All @@ -111,58 +131,58 @@ packages:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.8.1"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.0"
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.3.0"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
version: "0.5.1"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.4"
sdks:
dart: ">=2.12.0 <3.0.0"
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=1.17.0"
5 changes: 5 additions & 0 deletions lib/src/infinite_scroll_tab_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,18 @@ class InfiniteScrollTabView extends StatelessWidget {
this.onPageChanged,
this.indicatorColor = Colors.pinkAccent,
this.indicatorHeight,
this.indicatorRadius,
this.tabHeight = 44.0,
this.tabPadding = 12.0,
this.size,
this.forceFixedTabWidth = false,
this.fixedTabWidthFraction = 0.5,
}) : super(key: key);

/// The border radius of the indicator. If this is null, the indicator will
/// be rounded according to [indicatorHeight].
final BorderRadius? indicatorRadius;

/// A length of tabs and pages.
///
/// This value is shared between tabs and pages, so those must have same
Expand Down
15 changes: 12 additions & 3 deletions lib/src/inner_infinite_scroll_tab_view.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'dart:math' as math;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';

import '../infinite_scroll_tab_view.dart';
import 'cycled_list_view.dart';
Expand All @@ -24,6 +23,7 @@ class InnerInfiniteScrollTabView extends StatefulWidget {
this.backgroundColor,
this.onPageChanged,
required this.indicatorColor,
this.indicatorRadius,
this.indicatorHeight,
required this.defaultLocale,
required this.tabHeight,
Expand All @@ -44,6 +44,7 @@ class InnerInfiniteScrollTabView extends StatefulWidget {
final Color? backgroundColor;
final ValueChanged<int>? onPageChanged;
final Color indicatorColor;
final BorderRadius? indicatorRadius;
final double? indicatorHeight;
final Locale defaultLocale;
final double tabHeight;
Expand Down Expand Up @@ -311,6 +312,7 @@ class InnerInfiniteScrollTabViewState extends State<InnerInfiniteScrollTabView>
indicatorColor: widget.indicatorColor,
size: _indicatorSize,
indicatorHeight: indicatorHeight,
indicatorRadius: widget.indicatorRadius,
),
),
),
Expand Down Expand Up @@ -364,6 +366,7 @@ class InnerInfiniteScrollTabViewState extends State<InnerInfiniteScrollTabView>
: _tabTextSizes[modIndex],
indicatorHeight: indicatorHeight,
indicatorWidth: _tabTextSizes[modIndex],
indicatorRadius: widget.indicatorRadius,
),
),
),
Expand Down Expand Up @@ -413,6 +416,7 @@ class _TabContent extends StatelessWidget {
required this.indicatorHeight,
required this.indicatorWidth,
required this.tabWidth,
this.indicatorRadius,
}) : super(key: key);

final int modIndex;
Expand All @@ -424,6 +428,7 @@ class _TabContent extends StatelessWidget {
final BorderSide? separator;
final double indicatorHeight;
final double indicatorWidth;
final BorderRadius? indicatorRadius;
final double tabWidth;

@override
Expand Down Expand Up @@ -454,7 +459,8 @@ class _TabContent extends StatelessWidget {
child: Container(
width: indicatorWidth,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(indicatorHeight),
borderRadius:
indicatorRadius ?? BorderRadius.circular(indicatorHeight),
color: indicatorColor,
),
),
Expand All @@ -471,11 +477,13 @@ class _CenteredIndicator extends StatelessWidget {
required this.indicatorColor,
required this.size,
required this.indicatorHeight,
this.indicatorRadius,
}) : super(key: key);

final Color indicatorColor;
final ValueNotifier<double> size;
final double indicatorHeight;
final BorderRadius? indicatorRadius;

@override
Widget build(BuildContext context) {
Expand All @@ -485,7 +493,8 @@ class _CenteredIndicator extends StatelessWidget {
child: Container(
height: indicatorHeight,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(indicatorHeight),
borderRadius:
indicatorRadius ?? BorderRadius.circular(indicatorHeight),
color: indicatorColor,
),
width: value,
Expand Down
Loading

0 comments on commit 8acf756

Please sign in to comment.