15

ScrollView必ずしもそのサイズを超えるとは限らないコンテンツがあります。エラーが発生すると、エラーメッセージを追加するために展開され、サイズを超えるフォームであるとしましょうScrollView。そのため、そのスクロールを使用しています。

問題は、コンテンツを常に少なくとも ScrollView と同じサイズにしたいということです。私はminHeightプロパティを認識していますが、それを使用する唯一の方法は再レンダリングであり、これは避けたいと考えています。

私は状態管理にreduxを使用していますが、これが私が持っているものです

<ScrollView
  contentContainerStyle={[ownStyles.container, {minHeight: this.props.scrollHeight}]}
  style={this.props.style}
  showsVerticalScrollIndicator={false}
  onLayout={(event) => {
    scrollHeight = event.nativeEvent.layout.height;
    this.props.setScrollContentHeight(scrollHeight);
  }}
>

this.props.setScrollContentHeightその状態で高さに入るアクションをトリガーするところ、高さthis.props.scrollHeightと言います。そのため、onLayout 関数がトリガーされた最初のレンダリングの後、状態が ScrollView で更新され、そのコンテンツheightとして割り当てられます。minHeight

コンテンツのスタイルを に設定するとflex: 1、ScrollView はスクロールしません。

パフォーマンスのために、その 2 番目のレンダリングを回避する方法を考えられますか?

ありがとうございました!

4

6 に答える 6

1

これが少し遅いことはわかっていますが、その中にコンテンツをwithScrollViewスタイルプロパティでラップするとうまくいくと思います。ViewminHeight

于 2016-11-17T03:47:59.253 に答える