2017-08-03 12 views
1

React-NativeのTouchableOpacityコンポーネントの不透明度のボリュームを変更する方法を理解しようとしています。つまり、不透明度のデフォルト値が気に入らないプレスが実行され、不透明度があまり透明でないようにしたいと思います。TouchableOpacityのTouch onPressのonPressをReact-Nativeで手動で設定する

この目的Animated APIが使用されるべきであるためdocumentationによれば:

不透明度は、ビュー階層に追加さAnimated.Viewに子供をラップすることによって制御されます。これがレイアウトに影響する可能性があることに注意してください。だから、

、私はそれをやった、それはそれがどのように見えるかです:

<Animated.View style={{ opacity: this.state.opacity._value }}> 
    <TouchableOpacity 
     onPress={this.hideKeyboard.bind(this)} 
     style={{ opacity: this.state.opacity._value }} 
    > 
     <Text style={buttonTextStyle}>Cancel</Text> 
    </TouchableOpacity> 
</Animated.View> 

hideKeyboard方法、それはたonPressに呼び出されて、それはそれがどのように見えるかですが、その中からchangeOpacityメソッドを呼び出します:

changeOpacity() { 
    Animated.timing(
     this.state.opacity, 
     { 
      toValue: this.state.opacity === 1 ? 0 : 1, 
      duration: 500 
     } 
    ).start(); 
} 

this.state.opacityはコンストラクタで宣言されています:

constructor(props) { 
    super(props); 
    this.state = { opacity: new Animated.Value(1) }; 
} 

このすべてを持って、行動(TouchableOpacityの不透明たonPressのボリュームは)それはまだデフォルトのまま、変更されません。ドキュメントでは、あいまいにsetOpacityToメソッドも導入されていますが、ドキュメントに記載されている説明の徹底により、使用方法を理解できません。不透明度を手動で設定するにはどうすればよいですか?

答えて

3

あなたはこの

<TouchableOpacity 
    activeOpacity={.7} // default is .2 
    ... other props here 
/> 
+0

を試してみましたありがとう、私はそれを試してみましたが、アニメーションが遅すぎます。それは2つの値の間にポップするだけではなく、しばらくの間.7にとどまり、その後に戻ります。 – Eduard

+1

この問題は、開発モードで一般的に反応して発生する可能性があり、製品のバージョンを確認して確認してください。 –

+0

私はこのTouchableOpacityを持つ新しいプロジェクトを作成しました。期待通りに機能します。だから、私の実際のプロジェクトで持っているコードの量は、デバッガをオフにしても性能に影響を与えます、それは正しいですか? – Eduard

関連する問題