react-native - 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 组件
解决方案
你应该把它附在 touchableopacity..
<TouchableOpacity style={{ flex: 1 }}
onPress={() =>}}>
<View>
<Text selectable>{item}</Text>
</View>
</TouchableOpacity>
推荐阅读
- sql-server-2017 - 无法在 SQL Server 2017 中执行 .sql 文件中的查询
- javascript - 使用量角器的过时元素引用错误
- corda - net.corda.core.serialization.SerializationWhitelist:读取配置文件时出错
- react-native - 当 editable={false} 时 React Native TextInput 变得透明 - 如何防止这种行为?
- javascript - 分组和求和,并为每个数组 javascript 生成一个对象
- networking - 计算机网络:第 70 段是在哪一轮传输中发送的?
- ubuntu-server - Ubuntu 18 - Netplan - cloud.cfg 禁用问题
- powershell - 任务调度程序作业延迟
- sql-server - 当您必须构建一个从一组数据库写入/读取的应用程序时,Apache Gora 是否适合?
- css - Fluent Validation:在错误时更改控件样式