React Native必须双击onPress才能工作

时间:2017-03-15 11:20:40

标签: react-native native-base

我将React Native与Native Base库结合使用。我需要一个onPress事件来触发Native Base'键盘打开时ListItem(相当于TouchableOpacity)。

我现在必须单击一次才能关闭键盘然后我可以按ListItem。

下面的内容标记等同于ScrollableView:

use

2 个答案:

答案 0 :(得分:32)

我其实只是想出来了。我添加了keyboardShouldPersistTaps ='总是'支持我的列表,除了内容标记:

<Content keyboardShouldPersistTaps='always' keyboardDismissMode='on-drag'>
  <List>
    <ListItem style={styles.inspectionsItemDivider} itemDivider>
      <TextInput
        autoFocus={true}
        ref={(input) => { this.titleSearch = input }}
        placeholder='Start typing...'
        multiline={true}
        onChangeText={this.setSearchText.bind(this)}
        value={this.getSearchValue()}/>
    </ListItem>
    <View style={styles.searchContainer}>
      <Text style={styles.recentText}>Recommended Descriptions</Text>
      <List keyboardShouldPersistTaps='always' dataArray={this.state.searchedDescriptions} 
        renderRow={(description) =>
        <ListItem button onPress={() => this.setInformationDescription(description)}>
          <Text>{description}</Text>
        </ListItem>
      </List>
    </View>
  </List>
</Content>

答案 1 :(得分:0)

对于我来说,对于新的Google员工,我有一个带有onPress属性和searchBar的清单。我想即使在键盘按下的情况下也要按该行,并且只能通过双击来完成。最后,通过使用清单的“ keyboardShouldPersistTaps”解决了该问题:

Hide_Soft_Keyboard=()=>{
      Keyboard.dismiss();
    }

....

                <List>
                      <FlatList
                        keyboardShouldPersistTaps = "always"
                        ...
                        renderItem={({item}) => (
                        <ListItem
                          ...
                          ...
                          onPress={() =>{this.Hide_Soft_Keyboard(); this.props.navigation.navigate('Screen2')}}                                                      
                        /> ) }
                        />
                  </List>