美文网首页ReactNative
React Native Android 独有组件 ViewPa

React Native Android 独有组件 ViewPa

作者: Kevin_小飞象 | 来源:发表于2019-03-19 17:01 被阅读0次

一个允许在子视图之间左右翻页的容器。每一个 ViewPagerAndroid 的子容器会被视作一个单独的页,并且会被拉伸填满 ViewPagerAndroid。

属性

名称 类型 必填 说明
initialPage number 初始选中的页的下标。
keyboardDismissMode enum('none', 'on-drag') 决定在滑动的时候是否要让软键盘消失。
onPageScroll function 当在页间切换时(不论是由于动画还是由于用户在页间滑动/拖拽)执行。
onPageScrollStateChanged function 页面滑动状态变化时调用此回调函数。
onPageSelected function 这个回调会在页面切换完成后(当用户在页面间滑动)调用。
pageMargin number 页面滑动时两个页面之间的间距。
peekEnabled bool 是否在当前页滑动时展示前一页或者后一页,默认为 false
scrollEnabled bool 设为 false 时可禁止滚动。默认值为 true

实例

1. 逻辑代码

import React, { Component } from 'react';
import {
  StyleSheet,
  ViewPagerAndroid,
  TouchableOpacity,
  Image,
  View,
  Text
} from 'react-native';

var PAGES = 2;
var IMAGES = [
  'http://apod.nasa.gov/apod/image/1410/20141008tleBaldridge001h990.jpg',
  'http://apod.nasa.gov/apod/image/1409/volcanicpillar_vetter_960.jpg',
];

export default class App extends Component {
  constructor(props) { 
    super(props);
    this.state = {
      page:0
    }
  }
  render() {
    var pages = [];
    for (let i = 0; i < PAGES; i++) { 
      pages.push(
        <View key={i} collapsable={false}>
          <TouchableOpacity
            activeOpacity={1}
            onPress={this.onPress}
          >
            <Image
              style={styles.image}
              source={{ uri: IMAGES[i] }} />
          </TouchableOpacity>
        </View>
      );
    }
    return (
    
        <View style={styles.container}>
            
        <ViewPagerAndroid
          initialPage={0}
          onPageSelected={
            this.onPageSelected
          }
        >{pages}</ViewPagerAndroid>

        <Text style= {styles.text}>当前第{this.state.page + 1}页</Text>
          
        </View>
    )
  }

  onPageSelected = (e) => {
    this.setState({ page: e.nativeEvent.position });
  }
  onPress = () => {
    alert('第' + (this.state.page + 1) + '页被点击了');
  }

  
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor:'white'
  },
  image: {
    height: 200,
    padding:20
  },
  viewPager: {
    flex:1
  },
  text: {
    alignSelf: 'center',
    flex:1
  }

});

2. 效果图

ViewPagerAndroid.gif

相关文章

网友评论

    本文标题:React Native Android 独有组件 ViewPa

    本文链接:https://www.haomeiwen.com/subject/qxlnmqtx.html