NativeBase 选项卡无法自定义 borderBottomColor
NativeBase tabs unable to customise borderBottomColor
我有几个标签定义如下:
<Tabs renderTabBar={() => <ScrollableTab />}>
<Tab heading="Tab1" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab2" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab3" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab4" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab5" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
</Tabs>
具有以下样式:
const styles = StyleSheet.create({
tabStyling: {
backgroundColor: '#37b372'
},
activeTabStyle: {
backgroundColor: '#37b372',
borderColor: 'white',
borderBottomColor: 'red'
},
tabTextStyle: {
color: 'black'
},
activeTabTextStyle: {
fontWeight: 'bold',
color: 'white',
fontSize: 20
}
});
在 activeTabStyle
上,我定义了 borderBottomColor: 'red'
但它仍然给我默认的蓝色
下面是来自NativeBase
的界面
interface Tab {
heading: React.ReactElement<TabHeading> | string;
tabStyle?:ReactNative.ViewStyle | Array<ReactNative.ViewStyle>;
activeTabStyle?: ReactNative.ViewStyle | Array<ReactNative.ViewStyle>;
textStyle?: ReactNative.TextStyle;
activeTextStyle?: ReactNative.TextStyle;
}
所以 activeTabStyle
应该只是基本的 ReactNative.ViewStyle
最好的方法是使用 tabBarUnderlineStyle
,如 here 所述,因为它是 Tabs
的 属性 而不是 Tab
。
例如
<Tabs tabBarUnderlineStyle={{ backgroundColor: 'YOUR_SAMPLE_COLOR' }} renderTabBar={() => <ScrollableTab /> }>
{... // Rest of the data}
</Tabs>
还要注意的另一件事是您的样式正在应用,但它隐藏在默认边框下方。
要注意到它,您可以添加
activeTabStyle: {
backgroundColor: '#37b372',
borderColor: 'white',
borderBottomColor: 'red',
borderBottomWidth: 10
},
我有几个标签定义如下:
<Tabs renderTabBar={() => <ScrollableTab />}>
<Tab heading="Tab1" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab2" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab3" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab4" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
<Tab heading="Tab5" tabStyle={styles.tabStyling} activeTabStyle={styles.activeTabStyle} textStyle={styles.tabTextStyle} activeTextStyle={styles.activeTabTextStyle} />
</Tabs>
具有以下样式:
const styles = StyleSheet.create({
tabStyling: {
backgroundColor: '#37b372'
},
activeTabStyle: {
backgroundColor: '#37b372',
borderColor: 'white',
borderBottomColor: 'red'
},
tabTextStyle: {
color: 'black'
},
activeTabTextStyle: {
fontWeight: 'bold',
color: 'white',
fontSize: 20
}
});
在 activeTabStyle
上,我定义了 borderBottomColor: 'red'
但它仍然给我默认的蓝色
下面是来自NativeBase
interface Tab {
heading: React.ReactElement<TabHeading> | string;
tabStyle?:ReactNative.ViewStyle | Array<ReactNative.ViewStyle>;
activeTabStyle?: ReactNative.ViewStyle | Array<ReactNative.ViewStyle>;
textStyle?: ReactNative.TextStyle;
activeTextStyle?: ReactNative.TextStyle;
}
所以 activeTabStyle
应该只是基本的 ReactNative.ViewStyle
最好的方法是使用 tabBarUnderlineStyle
,如 here 所述,因为它是 Tabs
的 属性 而不是 Tab
。
例如
<Tabs tabBarUnderlineStyle={{ backgroundColor: 'YOUR_SAMPLE_COLOR' }} renderTabBar={() => <ScrollableTab /> }>
{... // Rest of the data}
</Tabs>
还要注意的另一件事是您的样式正在应用,但它隐藏在默认边框下方。 要注意到它,您可以添加
activeTabStyle: {
backgroundColor: '#37b372',
borderColor: 'white',
borderBottomColor: 'red',
borderBottomWidth: 10
},