react-native-navigation的迁移库

StatusBarFirstTab.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. const React = require('react');
  2. const { StyleSheet, Image } = require('react-native');
  3. const Root = require('../components/Root');
  4. const Button = require('../components/Button')
  5. const Navigation = require('../services/Navigation');
  6. const Screens = require('./Screens');
  7. class StatusBarFirstTab extends React.Component {
  8. visible = true;
  9. static options() {
  10. return ({
  11. statusBar: {
  12. translucent: true,
  13. drawBehind: true
  14. },
  15. topBar: {
  16. elevation: 0,
  17. drawBehind: true,
  18. background: {
  19. color: 'transparent'
  20. },
  21. title: {
  22. text: 'Pushed'
  23. }
  24. }
  25. });
  26. }
  27. render() {
  28. return (
  29. <Root componentId={this.props.componentId} style={style.root}>
  30. <Image
  31. style={style.image}
  32. source={require('../../img/city2.jpeg')}
  33. fadeDuration={0}
  34. />
  35. <Button label='Push' onPress={this.push} />
  36. <Button label='Toggle Tabs' onPress={this.toggleTabs} />
  37. </Root>
  38. );
  39. }
  40. push = () => Navigation.push(this, Screens.Pushed, {
  41. bottomTabs: {
  42. visible: false,
  43. drawBehind: true
  44. }
  45. });
  46. toggleTabs = () => {
  47. this.visible = !this.visible
  48. Navigation.mergeOptions(this, {
  49. bottomTabs: {
  50. visible: this.visible,
  51. drawBehind: !this.visible,
  52. animate: true
  53. }
  54. });
  55. };
  56. }
  57. const style = StyleSheet.create({
  58. root: {
  59. paddingTop: 0,
  60. paddingHorizontal: 0
  61. },
  62. image: {
  63. height: 250,
  64. width: '100%',
  65. resizeMode: 'cover',
  66. marginBottom: 16
  67. }
  68. });
  69. module.exports = StatusBarFirstTab;