const ABCTabbar = createBottomTabNavigator({
'ANav': {screen: ANav,},
'BNav': {screen: BNav,},
'CNav': {screen: CNav,},
});
const ACTabbar = createBottomTabNavigator({
'ANav': {screen: ANav,},
'CNav': {screen: CNav,},
});
const BCTabbar = createBottomTabNavigator({
'BNav': {screen: BNav,},
'CNav': {screen: CNav,},
});
const CTabbar = createBottomTabNavigator({
'CNav': {screen: CNav,},
});
const ABCTabNavigator = createAppContainer(ABCTabbar);
const ACTabNavigator = createAppContainer(ACTabbar);
const BCTabNavigator = createAppContainer(BCTabbar);
const CTabNavigator = createAppContainer(CTabbar);
export { ABCTabNavigator, ACTabNavigator, BCTabNavigator, CTabNavigator };
复制代码
class MainNav extends Component {
render() {
if (this.state.permission === 'ABC') {
return (<ABCTabNavigator/>);
} else if (this.state.permission == 'AC') {
return (<ACTabNavigator/>);
} else if (this.state.permission == 'BC') {
return (<BCTabNavigator/>);
} else {
return (<CTabNavigator/>);
}
}
}
复制代码
const Main = createStackNavigator({
MainNav: {screen: MainNav},
DPage: {screen: DPage},
});
const MainNavigation = createAppContainer(Main);
export default MainNavigation;
复制代码
import {BackHandler} from 'react-native';
const handleAndroidBackButton = callback => {
BackHandler.addEventListener('hardwareBackPress', callback);
};
const removeAndroidBackButtonHandler = (callback) => {
BackHandler.removeEventListener('hardwareBackPress', callback);
}
export {handleAndroidBackButton, removeAndroidBackButtonHandler};
复制代码
页面上的实现:html
import {handleAndroidBackButton, removeAndroidBackButtonHandler} from '../../Util/AndroidBackAction.js'; // 你本身的路径
export default class D extends Component {
constructor(props) {
super(props);
handleAndroidBackButton(this.onBackAndroid); // 必定要在这里写
}
componentWillUnmount() {
removeAndroidBackButtonHandler(this.onBackAndroid); // 必定要在这里写
}
onBackAndroid = () => {
this.props.navigation.goBack();
return true;
};
}
复制代码
还有个按两下退出应用的,我是写在了入口的地方(就配置的地方),监听的方式是同样的,就是onBackAndroid实现不同react
onBackAndroid = () => {
if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
//最近2秒内按过back键,能够退出应用。
return false;
}
this.lastBackPressed = Date.now();
ToastAndroid.show('再按返回退出应用', ToastAndroid.SHORT);
return true;
};
复制代码
好啦,大功告成~~~android
结束~撒花~~~react-native