为什么我们在react-native中使用removeClippedSubviews
组件中的View
属性,它的作用是什么?这些文档说:
这是
RCTView
公开的特殊性能属性,它是 当有很多子视图时,对滚动内容很有用 屏幕外。为了使此属性有效,必须 应用于包含许多扩展到其子视图之外的子视图的视图 界。子视图还必须具有overflow: hidden
, 包含视图(或其超级视图之一)。
documentation似乎难以理解。谁能用一个小例子解释一下?
答案 0 :(得分:0)
您需要首先了解剪辑视图的概念 剪辑视图表示基于某些逻辑(例如
)显示的选择性视图if(this.state.status === true){
return(<View style={{backgroundColor:'red'}}/>)
}else{
return(<View style={{backgroundColor:'green'}}/>)
}
在上面的示例中,我们有两个红色和绿色视图,但是根据状态一次只能显示其中一个,这就是所谓的裁剪视图
现在回到您的问题,removeClippedSubviews属性将重置或删除所有裁剪的视图,这些视图将释放一些空间
注意:-解释是基于我对我什至没有参考的不同论坛的个人理解,您可以进一步挖掘该主题,并在我为我提供参考的同时我也学习 谢谢:)
答案 1 :(得分:0)
将 removeClippedSubviews 设置为 false 修复了一个可怕的问题:如果您在 FlatList 中使用 TextInput,Android 键盘会关闭,并且点击的 TextInput 位于即将成为键盘区域的下方。
(我什至在 React Native 文档示例中复制了这个,我只是在虚拟 android 上运行了一个示例并将 Text 更改为 TextInput。)
我认为即将在键盘下的子视图被删除,因为它们即将被键盘剪裁,导致键盘立即离开,因为不再呈现 TextInput。
因此,该属性有一个(就我而言)至关重要的用途,至少在 FlatList 上是这样。