- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在使用React-native React-navigation,并且我试图将我的应用程序设置为具有一些流程。
这个想法是嵌套一个抽屉,我可以在选项卡导航器的标题中打开和关闭它。或者同时使用 tabBar 顶部和底部,我不确定这是否可行。
这是我的 Navigator.js
const RootDrawer = DrawerNavigator({
Leaderboard: {
screen: Leaderboard,
navigationOptions: {
drawerLabel: 'Leaderboard',
drawerIcon: ({ tintColor, focused }) => (
<Ionicons
name={focused ? 'ios-ribbon' : 'ios-ribbon-outline'}
size={20}
style={{ color: tintColor }}
/>
),
},
},
Achievements: {
screen: Leaderboard,
navigationOptions: {
drawerLabel: 'Achievements',
drawerIcon: ({ tintColor, focused }) => (
<Ionicons
name={focused ? 'ios-trophy' : 'ios-trophy-outline'}
size={20}
style={{ color: tintColor }}
/>
),
},
}
});
// this was if i was going to use top and bottom tabs for experimentation
const TopTabs = TabNavigator(
{
Home: {
screen: Landing,
navigationOptions: {
title: 'Test',
}
},
Settings: {
screen: RootDrawer,
navigationOptions: ({ navigation }) => ({
headerLeft : <MenuButton navigation={navigation} />
// headerLeft : <MenuButton navigate={navigation.navigate} />
})
},
},
{
navigationOptions: ({ navigation }) => ({
headerTitleStyle: {
alignSelf: 'center',
textAlign: 'center',
},
tabBarIcon: ({ focused, tintColor }) => {
const { routeName } = navigation.state;
let iconName;
switch(routeName) {
case 'Home':
iconName = 'home';
break;
case 'Profile':
iconName = 'account';
break;
case 'Run':
iconName = 'run';
break;
case 'Settings':
iconName = 'settings';
break;
}
return <MCIcons name={iconName} size={25} color={tintColor} />;
}
,
}),
tabBarOptions: {
activeTintColor: 'tomato',
inactiveTintColor: 'gray',
},
tabBarComponent: TabBarBottom,
tabBarPosition: 'top',
animationEnabled: false,
swipeEnabled: false,
}
);
const BottomTabs = TabNavigator({
Home: {
screen: Landing,
navigationOptions: {
title: 'Test',
}
},
Run: {
screen: Landing,
navigationOptions: {
title: 'Let\'s Run'
}
},
Profile: { screen: Profile }
},
{
navigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, tintColor }) => {
const { routeName } = navigation.state;
let iconName;
switch(routeName) {
case 'Home':
iconName = 'home';
break;
case 'Profile':
iconName = 'account';
break;
case 'Run':
iconName = 'run';
break;
case 'Settings':
iconName = 'settings';
break;
}
return <MCIcons name={iconName} size={25} color={tintColor} />;
}
,
}),
tabBarOptions: {
activeTintColor: 'tomato',
inactiveTintColor: 'gray',
},
tabBarComponent: TabBarBottom,
tabBarPosition: 'bottom',
animationEnabled: false,
swipeEnabled: false,
}
);
// Tried to create new item here to create custom header but when I click it it just navigates to the first item in the drawer instead of open / close the drawer
const TabStack = StackNavigator({
BottomTabs: {
screen: BottomTabs,
navigationOptions: ({ navigation }) => ({
title: "Main",
headerLeft:(
<MenuButton navigation={navigation} />
)
})
},
Drawer: {
screen: RootDrawer
}
});
export const RootNav = StackNavigator({
WelcomePage: {
screen: WelcomePage,
navigationOptions: {
header: null
}
},
Login: {
screen: LoginForm,
navigationOptions: {
title: 'Login'
}
},
SignUp: {
screen: SignUpForm,
navigationOptions: {
title: 'Sign Up'
}
},
Tabs: {
screen: TabStack
}
});
export default RootNav;
export default RootNav;
这是我的 MenuButton.js
imports ...
export default class MenuButton extends Component {
press() {
// this.props.navigate('DrawerToggle');
// Work around for broken functionality above. Should eventually be fixed
if (this.props.navigation.state.index === 0) {
this.props.navigation.navigate('DrawerOpen')
} else {
this.props.navigation.navigate('DrawerClose')
}
}
render() {
return (
<TouchableOpacity onPress={this.press.bind(this)}>
<Icon name="bars" style={{color: 'black', padding: 10, marginLeft:10, fontSize: 20}}/>
</TouchableOpacity>
);
}
}
因此,我希望每当我位于 BottomTabs TabNavigation 下列出的屏幕上时,我的标题中都能够有一个 MenuButton,这将允许我切换 DrawerNavigation
最佳答案
那么你可以像这样改变你的 MenuButtom:
imports .....
const MenuButton = ({ navigation }) => (
<TouchableOpacity onPress={() => navigation.navigate('DrawerOpen')}>
<Icon
name="bars"
style....
/>
</TouchableOpacity>
);
export default MenuButton;
然后在导航器中导入此自定义按钮并创建底部选项卡和抽屉,如下所示:
const BottomTabs = TabNavigator({
tabs screens.....
},
{
tab bar options....
})
现在你的抽屉:
export const Drawer = DrawerNavigator({
Tabs: {
screen: BottomTabs,
}
},
{
navigationOptions: ({navigation}) => ({
headerLeft: <MenuButton navigation={navigation} />,
}),
});
现在是你的 RootNav
export const RootNav = StackNavigator({
Dashboard : {
screen: Drawer,
},
});
export default RootNav;
我希望这对您有帮助,我也在这里给您留下一个例子:
关于javascript - 嵌套在 TabNavigator 中的抽屉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679568/
我有这个组件,它包含一个由 TabNavigator 覆盖在底部的列表。任何想法如何解决它?只有一种造型方式吗? render() { return (
情况是,我有三个屏幕,显示从 API 获取的结果,并允许用户对这些结果分派(dispatch)操作。这些操作会触发(应该)导致其他两个屏幕。换句话说,如果用户在任何屏幕上并执行某些操作,其他两个屏幕应
页眉标题似乎无法按预期工作。 我已经将 react-native 和所有其他依赖项更新到最新版本,并查看了 react-navigation 文档。我还在 github 上为此项目创建了一个错误。 如
当我运行模拟器时... react-native run-ios ...我在终端中看到一条消息“TabNavigator 已弃用。请使用 createBottomTabNavigator...” 但是
我相对确定我发现这是不可能的,但我想确保没有办法。 有问题的应用程序从 AppNavigator StackNavigator 开始. export const AppNavigator = Stac
如何设置 TabNavigator 选项卡的高度和填充样式?我在做以下事情: import Icon from "react-native-vector-icons/MaterialIcons"; c
所以我正在使用React-native React-navigation,并且我试图将我的应用程序设置为具有一些流程。 这个想法是嵌套一个抽屉,我可以在选项卡导航器的标题中打开和关闭它。或者同时使用
我在 StackNavigator(祖级导航器)内的另一个 TabNavigator(父级导航器)中使用 TabNavigator(子级导航器)。 这是我的代码。 const SimpleAp
我正在尝试将 TabNavigator 中的选项卡设置为橙色。我尝试了多种不同的方法,但似乎都不起作用(即背景始终为标准灰色)。 @namespace mx "library://ns.adobe.
我假设之前有人问过这个问题,但我找不到它,所以请告诉我它是否与其他措辞或其他内容一起找到了重复项。 问题出在包含多个 CellTemplate 的 SL4 DataGrid,包括 Checkbox、B
我想隐藏 Header 和 TabNavigator 选项卡 onScroll。我怎么做?我想在滚动上隐藏它们并在 ScrollUp 上显示它们。我的代码: import React, { Compo
我在 tabnavigator 中有组件。在我的组件中,我有多行文本,所以当我在 InputText 键盘上输入多行时,我想使用 KeyboardAvoidingView 在键盘显示时推送屏幕。 这是
这是我的层次结构, -StackNavigator (root) -Portada -MainScreen (TabNavigator) -Home -
TabNavigator 有问题。选项卡的标签被截断,一旦用户将鼠标放在选项卡上,它就会再次重绘。有没有办法以编程方式重新绘制选项卡的标签? 最佳答案 您可能还想考虑 SuperTabNavigato
我用过 TabNavigation对于我的应用程序。在某些屏幕上,我希望它只显示在 portrait 上方向,其他是landscape .我找到了 react-native-orientation并在
我在我的 React Native 应用程序中使用选项卡导航器、堆栈导航器和开关导航器的组合 react-navigation 。 这很有效,但我想在每个屏幕中保留底部选项卡。目前,如果我导航到 Us
如何隐藏 TabNavigator 中的标签并仅显示图标?如果我执行以下操作: const Tabs = TabNavigator({ Home: { screen:MainHome,
这是我的项目文件层次结构 RootTabNavigator | AuthStackNavigator // I want to go back to this navigator
我使用 createMaterialTopTabNavigator 创建了一个自定义选项卡导航器,但在其中一个选项卡中我想创建一个 StackNavigator。这可能吗? 我发现了很多嵌套在 Sta
问题我使用 React Native 制作了一个非常基本的应用程序,现在我想要有多个选项卡。当我尝试添加提要和评论选项卡时,收到一条错误消息: Uncaught Error: Route 'Feed'
我是一名优秀的程序员,十分优秀!