2016-08-11 54 views
5

滾動集中我有一個ScrollViewTextInput multiline={true}字段,用於與動力高度的文本區域,並且從內容讀狀態(它有一個Text字段內顯示所述文本)。防止的TextInput,同時在iOS

我的問題是,當TextInput增長到幾行時,如果通過在此字段上滑動來滾動屏幕(我不用長按或其他任何東西),該字段將觸發其onFocus事件,鍵盤會顯示。

它不會每次都發生,但它發生的次數足以讓它變得非常煩人。

我試着設置ScrollViewkeyboardDismissMode="on-drag"但它沒有幫助,鍵盤在視圖滾動時仍然顯示。

<ScrollView keyboardDismissMode="on-drag"> 
    <TextInput multiline={true} onFocus={() => console.log('boop')}> 
    <Text>{this.state.someText}</Text> 
    </TextInput> 
</ScrollView> 

我也試過這樣做沒有Text領域內TextInputonFocus仍是起火了。

我做錯了什麼?還有什麼我可以嘗試,如檢查屏幕是否仍然滾動和blur()該字段,如果true或類似的東西?

如果我明確地點擊它,有什麼方法可以只關注該字段?

感謝您的幫助。

+0

我有同樣的問題 –

+0

同樣在這裏,仍然試圖弄清楚這一點。嘗試應答者。 – Palisand

+0

@rudikovac我想我想通了,很快回答。 – Palisand

回答

0

更新
不再工作在0.49.0


包裝你TextInput與適當panHandlers一個View

panResponder = PanResponder.create({ 
    onStartShouldSetPanResponderCapture:() => true 
}); 

... 

<ScrollView> 
    <View {...panResponder.panHandlers}> 
    <TextInput ... /> 
    </View> 
</ScrollView> 

在RN 0.46.1測試。

僅適用於iOS,將更新答案,如果/當我得到它在Android上的工作。

+0

它工作的很好,但它也阻止了onBlur事件和TextInput外面的輕敲 - 關閉鍵盤 – Alex