React原生Android ScrollView pagingenabled不起作用

时间:2016-06-10 08:07:04

标签: react-native

我正在尝试在React Native中使用水平ScrollView,并设置pagingEnabled = {true}。它适用于iOS,但不适用于Android



<ScrollView style={{marginTop: 10}}
            horizontal={true}
            pagingEnabled={true}
            ref={(scrollView) => { _scrollView = scrollView; }}
            onScroll={this._handleScroll}
            scrollEventThrottle={16}>
  <View style={styles.starView}>
    <Text>1</Text>
  </View>
  <View style={styles.videoView}>
    <Text>2</Text>
  </View>
  <View style={styles.techView}>
    <Text>3</Text>
  </View>
</ScrollView>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:3)

使用ViewPager for Android

Rectangle rc = new Rectangle(242, 299, 200, 300);

int cX = (rc.Left + rc.Right) / 2;
int cY = (rc.Bottom + rc.Top) / 2;

// For debugging purposes, let's mark that point.
g.FillRectangle(Brushes.Yellow, Rectangle.FromLTRB(cX - 3, cY - 3, cX + 3, cY + 3));

答案 1 :(得分:2)

自0.28以来in 0.27 it is not supported支持android的pagingEnabled属性。您应该检查您的反应原生版本并升级。

答案 2 :(得分:2)

对于遇到此问题的任何人,无论其React Native版本如何,Android上都不支持ec ⇒ mat ⇒ a ⇒ f(ec)(mat)(this(a)(ec, mat)) pagingEnabled

https://github.com/facebook/react-native/issues/7780

答案 3 :(得分:0)

在Android上我遇到了孩子没有采用100%宽度的问题,所以我最终使用Dimensions并为每个孩子设置宽度:

render() {
    const { navigation:{ state:{params:{ type, petId }} } } = this.props;
    const { isSubmitting, submitError } = this.state;

    const stylePageWidth = { width:Dimensions.get('window').width };

    return (
        <View style={styles.main}>
            <ScrollView horizontal pagingEnabled>
                <View style={stylePageWidth}>

                </View>
                <View style={stylePageWidth}>

                </View>
            </ScrollView>
        </View>
     )