为什么我们在react native中的View组件中使用removeClippedSubviews属性



为什么我们在react native中的View组件中使用removeClippedSubviews属性,它的作用是什么?文件上说:

这是RCTView公开的一个特殊性能属性当有许多子视图时,对于滚动内容非常有用它们在屏幕外。为了使此属性生效,它必须应用于包含许多扩展到其外部的子视图的视图跳跃子视图也必须具有overflow: hidden包含视图(或其超视图之一(。

文档似乎无法理解。有人能举个小例子解释一下吗?

将removeClippedSubviews设置为false修复了一个可怕的问题,即如果您在FlatList中使用TextInput,Android键盘会被忽略,并且所点击的TextInput位于即将成为键盘的区域下方。

(我甚至在React Native docs的例子中复制了这一点,我只是在虚拟android上运行了一个例子,并将Text更改为TextInput。(

我推测,即将在键盘下的子视图将被删除,因为它们将被键盘剪裁,导致键盘立即离开,因为TextInput不再渲染。

因此,至少在FlatList上,这处房产有一个(在我的情况下(关键用途。

您需要首先了解剪切视图的概念剪切视图是指基于某些逻辑显示的选择性视图,例如

if(this.state.status === true){
return(<View style={{backgroundColor:'red'}}/>)
}else{
return(<View style={{backgroundColor:'green'}}/>)
}

在上面的例子中,我们有两个红色和绿色的视图,但根据状态,一次只显示其中一个,这就是所谓的裁剪视图

现在回到你的问题removeClippedSubviews属性将重置或删除所有剪辑的视图,这将释放一些空间

注意:-解释是基于我个人对不同论坛的理解,我甚至没有参考资料。你可以进一步挖掘这个话题,并为我提供来源,因为我也在学习谢谢:(

最新更新