react-native-navigation的迁移库

ScrollViewScreen.js 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. const React = require('react');
  2. const { Component } = require('react');
  3. const { StyleSheet, ScrollView, View, Button } = require('react-native');
  4. const Navigation = require('react-native-navigation');
  5. const testIDs = require('../testIDs');
  6. class ScrollViewScreen extends Component {
  7. static get navigationOptions() {
  8. return {
  9. topBar: {
  10. title: 'Collapse',
  11. textColor: 'black',
  12. textFontSize: 16,
  13. drawUnder: true,
  14. translucent: false
  15. }
  16. };
  17. }
  18. constructor(props) {
  19. super(props);
  20. this.state = {
  21. topBarHideOnScroll: false
  22. };
  23. this.onClickToggleTopBarHideOnScroll = this.onClickToggleTopBarHideOnScroll.bind(this);
  24. }
  25. render() {
  26. return (
  27. <View>
  28. <ScrollView testID={testIDs.SCROLLVIEW_ELEMENT} contentContainerStyle={styles.contentContainer}>
  29. <View>
  30. <Button title="Toggle Top Bar Hide On Scroll" testID={testIDs.TOGGLE_TOP_BAR_HIDE_ON_SCROLL} onPress={this.onClickToggleTopBarHideOnScroll} />
  31. </View>
  32. </ScrollView>
  33. </View>
  34. );
  35. }
  36. onClickToggleTopBarHideOnScroll() {
  37. this.setState({
  38. topBarHideOnScroll: !this.state.topBarHideOnScroll
  39. });
  40. }
  41. componentDidUpdate() {
  42. Navigation.setOptions(this.props.containerId, {
  43. topBar: {
  44. drawUnder: true,
  45. hideOnScroll: this.state.topBarHideOnScroll
  46. }
  47. });
  48. }
  49. }
  50. module.exports = ScrollViewScreen;
  51. const styles = StyleSheet.create({
  52. contentContainer: {
  53. alignItems: 'center',
  54. backgroundColor: 'green',
  55. paddingTop: 200,
  56. height: 1200
  57. }
  58. });