diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-03-17 15:02:43 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-03-17 15:02:43 -0500 |
commit | 93b334cce4f0d658a1573cda172695f44610b0e5 (patch) | |
tree | 43d879ef7a8098f284d2167c1f2ea8f14dd8e353 /src/view/com/util/TabBar.tsx | |
parent | 4a16b179e2e22b606568f59783190dbfa9933cf0 (diff) | |
download | voidsky-93b334cce4f0d658a1573cda172695f44610b0e5.tar.zst |
Use the native driver on the tabbar indicator to improve perf
Diffstat (limited to 'src/view/com/util/TabBar.tsx')
-rw-r--r-- | src/view/com/util/TabBar.tsx | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/view/com/util/TabBar.tsx b/src/view/com/util/TabBar.tsx index ac1814685..d3fe54830 100644 --- a/src/view/com/util/TabBar.tsx +++ b/src/view/com/util/TabBar.tsx @@ -44,14 +44,20 @@ export function TabBar({ backgroundColor: indicatorColor || pal.colors.link, bottom: indicatorPosition === 'bottom' ? -1 : undefined, top: indicatorPosition === 'top' ? -1 : undefined, - left: panX.interpolate({ - inputRange: items.map((_item, i) => i), - outputRange: itemLayouts.map(l => l.x), - }), - width: panX.interpolate({ - inputRange: items.map((_item, i) => i), - outputRange: itemLayouts.map(l => l.width), - }), + transform: [ + { + translateX: panX.interpolate({ + inputRange: items.map((_item, i) => i), + outputRange: itemLayouts.map(l => l.x + l.width / 2), + }), + }, + { + scaleX: panX.interpolate({ + inputRange: items.map((_item, i) => i), + outputRange: itemLayouts.map(l => l.width), + }), + }, + ], } const onLayout = () => { @@ -116,6 +122,8 @@ const styles = StyleSheet.create({ }, indicator: { position: 'absolute', + left: 0, + width: 1, height: 3, borderRadius: 4, }, |