如何将边框应用于 React native 中的选定选项卡?
How to apply border to selected tab in React native?
您有什么想法可以在所选选项卡的底部应用 2px 边框吗?我正在为标签栏和路由使用 react-native-router-flux 模块。
上图,已激活选定标签的 2px 深色边框。这就是我想要的。
以上其实是我做的。我可以激活条件图标颜色,但我不知道如何将边框应用于选定的选项卡。
你知道吗?
import React, {Component} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import {Provider} from 'react-redux';
import {Scene, Router, Tabbar} from 'react-native-router-flux';
import TodoListComponent from './app/components/TodoListComponent';
import TabComponent1 from './app/components/TabComponent1';
import TabComponent2 from './app/components/TabComponent2';
import TabComponent3 from './app/components/TabComponent3';
import {Icon} from 'react-native-elements';
import {configureStore} from './app/store';
const TabIcon = ({ selected, title, iconName }) => {
return (
<View>
<Icon
name={iconName}
color={selected? '#473332' : '#bdb8bc'}
size={35}
/>
</View>
)
};
export default class AppComponent extends Component {
render() {
return (
<Provider store={configureStore()}>
<Router>
<Scene key="root">
<Scene key="todoList" tabs tabBarStyle={{ top: 72, height: 76, backgroundColor: '#f1f2f4', borderColor: '#e6e7e9', borderBottomWidth: 1}} initial>
<Scene key="list" title="First Tab" iconName="list" icon={TabIcon}>
<Scene key="scarlet" component={TabComponent1} hideNavBar initial />
</Scene>
<Scene key="alarm" title="Second Tab" iconName="alarm" icon={TabIcon}>
<Scene key="scarlet2" component={TabComponent2} hideNavBar initial />
</Scene>
<Scene key="settings" title="Third Tab" iconName="settings" icon={TabIcon}>
<Scene key="scarlet3" component={TabComponent3} hideNavBar initial />
</Scene>
</Scene>
</Scene>
</Router>
</Provider>
);
}
}
AppRegistry.registerComponent('AppComponent', () => AppComponent);
使用tabBarSelectedItemStyle
tabBarSelectedItemStyle: {
borderBottomWidth: 2,
borderBottomColor: 'red',
},
你必须用一个标志来标记哪个被选中,所以你可以在底部添加一个线视图来显示该线,当它被选中时,显示该线。
你有几个方法..
边框颜色: "white",
边框宽度:2
这将对整个边界执行此操作,或者如果您想要具体:
borderRightColor: "white",
borderRightWidth: 2
左边框颜色:"white"
borderLeftWidth: 2
borderTopColor: "white"
borderTopWidth: 2
边框底部颜色:"white"
borderBottomWidth: 2
这里有一个例子:
tabBar选项:{
activeTintColor: 'white',
activeBackgroundColor: '#e1e1e1',
inactiveTintColor: '#b5b5b5',
标签样式:{
字体大小:10,
},
风格: {
背景颜色:'#091d5a',
边框颜色:"white",
边框宽度:2
}
}
您有什么想法可以在所选选项卡的底部应用 2px 边框吗?我正在为标签栏和路由使用 react-native-router-flux 模块。
上图,已激活选定标签的 2px 深色边框。这就是我想要的。
以上其实是我做的。我可以激活条件图标颜色,但我不知道如何将边框应用于选定的选项卡。
你知道吗?
import React, {Component} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import {Provider} from 'react-redux';
import {Scene, Router, Tabbar} from 'react-native-router-flux';
import TodoListComponent from './app/components/TodoListComponent';
import TabComponent1 from './app/components/TabComponent1';
import TabComponent2 from './app/components/TabComponent2';
import TabComponent3 from './app/components/TabComponent3';
import {Icon} from 'react-native-elements';
import {configureStore} from './app/store';
const TabIcon = ({ selected, title, iconName }) => {
return (
<View>
<Icon
name={iconName}
color={selected? '#473332' : '#bdb8bc'}
size={35}
/>
</View>
)
};
export default class AppComponent extends Component {
render() {
return (
<Provider store={configureStore()}>
<Router>
<Scene key="root">
<Scene key="todoList" tabs tabBarStyle={{ top: 72, height: 76, backgroundColor: '#f1f2f4', borderColor: '#e6e7e9', borderBottomWidth: 1}} initial>
<Scene key="list" title="First Tab" iconName="list" icon={TabIcon}>
<Scene key="scarlet" component={TabComponent1} hideNavBar initial />
</Scene>
<Scene key="alarm" title="Second Tab" iconName="alarm" icon={TabIcon}>
<Scene key="scarlet2" component={TabComponent2} hideNavBar initial />
</Scene>
<Scene key="settings" title="Third Tab" iconName="settings" icon={TabIcon}>
<Scene key="scarlet3" component={TabComponent3} hideNavBar initial />
</Scene>
</Scene>
</Scene>
</Router>
</Provider>
);
}
}
AppRegistry.registerComponent('AppComponent', () => AppComponent);
使用tabBarSelectedItemStyle
tabBarSelectedItemStyle: {
borderBottomWidth: 2,
borderBottomColor: 'red',
},
你必须用一个标志来标记哪个被选中,所以你可以在底部添加一个线视图来显示该线,当它被选中时,显示该线。
你有几个方法..
边框颜色: "white", 边框宽度:2
这将对整个边界执行此操作,或者如果您想要具体:
borderRightColor: "white", borderRightWidth: 2
左边框颜色:"white" borderLeftWidth: 2
borderTopColor: "white" borderTopWidth: 2
边框底部颜色:"white" borderBottomWidth: 2
这里有一个例子:
tabBar选项:{ activeTintColor: 'white', activeBackgroundColor: '#e1e1e1', inactiveTintColor: '#b5b5b5', 标签样式:{ 字体大小:10, }, 风格: { 背景颜色:'#091d5a', 边框颜色:"white", 边框宽度:2 } }