#reactjs #react-native #react-navigation
#reactjs #react-native #реакция-навигация
Вопрос:
Я пытаюсь создать нижнюю панель вкладок с прозрачной навигацией по реакции.
Я использую «tabBarComponent: » BottomTabNavigatorConfig. и фон MyCustomTabBar прозрачный.
Тем не менее, я получаю белый фон на панели вкладок.
const DashboardTabNavigator = createBottomTabNavigator(
{
Posts: PostsStack,
Subreddits: SubredditsScreen,
Profile: ProfileScreen,
Inbox: InboxScreen,
Search: SearchScreen
},
{
animationEnabled: false,
swipeEnabled: false,
lazyLoad: true,
tabBarOptions: {
tinColor: 'transparent',
activeTintColor: 'red',
inactiveTintColor: 'green',
showIcon: true,
showLabel: true,
lazyLoad: true,
upperCaseLabel: false,
indicatorStyle: {
backgroundColor: 'transparent'
},
style: {
backgroundColor: 'rgba(22, 22, 22, 0.6)',
borderTopWidth: 1,
borderTopColor: '#996600',
position: 'absolute',
left: 0,
right: 0,
bottom: 0
}
},
tabBarComponent: props => <TabBar {...props} />,
navigationOptions: ({ navigation }) => {
const { routeName } = navigation.state.routes[navigation.state.index];
return routeName === 'Posts'
? { header: null }
: { headerTitle: routeName }; // Disabled TabNavigators header for Posts screen cos It has its own header from another stacknavigator.
}
}
);
Комментарии:
1. Я заметил, что вы смешиваете пользовательскую панель вкладок с tabBarOptions, что не будет работать. Вы должны либо определить параметры для панели вкладок react-navigation по умолчанию, либо создать пользовательскую панель вкладок.
2. Согласен, но создание пользовательской панели вкладок с прозрачным фоном тоже не сработало.
3. Вероятно, это не будет работать с использованием react-navigation, поскольку экраны, которые вы отображаете внутри панели вкладок, будут ограничены областью над панелью вкладок.
4. Понял, спасибо @dentemm, ваш комментарий заставил меня пересмотреть то, что я делал неправильно. Сделал это с помощью react-navigation.
Ответ №1:
tabBarOptions
игнорируются, если tabBarComponent
указано.
Решение проблемы заключалось в применении следующего стиля к родительскому представлению пользовательского компонента.
style: {
backgroundColor: 'rgba(22, 22, 22, 0.6)',
borderTopWidth: 1,
borderTopColor: '#996600',
position: 'absolute',
left: 0,
right: 0,
bottom: 0
}
Ответ №2:
установить в опции панели вкладок
tabBarOptions: {
style: {
backgroundColor: 'transparent',
position: 'absolute',
left: 0,
right: 0,
bottom: 0,
elevation: 0,
},
},