首页 > 解决方案 > FlatList 中的文本在 Android 上不可选

问题描述

我刚刚将我的应用程序从 React Native 0.58.5 升级到 0.61.2,现在我无法在 Android 上的 FlatList 中选择文本。

我尝试在 React Native 58.5 的 Text 组件中设置 selectable = {true},效果很好,可以复制 Text 中的内容。但是在将 React Native 版本从 0.58.5 升级到 0.61.2 后,在 Android 9.0 中无法选择文本复制/粘贴内容。实际上它适用于Android 5.0,但不适用于Android 9.0

export default class App extends React.Component {
  _renderItem = ({item}) => {
    return (
      <View>
        <Text selectable>{item}</Text>
      </View>
    )
  }

  _keyExtractor = (item, index) => index.toString();

  render() {
    return (
      <View style={styles.container}>
        <Text selectable>This is selectable Text...</Text>
        <FlatList
          data={['not selectable text', 'not selectable text']}
          renderItem={this._renderItem}
          keyExtractor={this._keyExtractor}
        />
      </View>
    );
  }
}

预期行为:Flatlist 中的文本应该是可选的。

当前行为:即使在 Android 9.0 中设置了 selectable={true},也无法选择 Text 组件

标签: react-nativereact-native-android

解决方案


你应该把它附在 touchableopacity..

<TouchableOpacity style={{ flex: 1 }} 
     onPress={() =>}}>     
        <View>
         <Text selectable>{item}</Text>
        </View>
   </TouchableOpacity>

推荐阅读