如何禁用特定视图内的滚动?
Posted
技术标签:
【中文标题】如何禁用特定视图内的滚动?【英文标题】:How to disable scroll inside a particular view? 【发布时间】:2021-11-23 15:33:21 【问题描述】:我试图让 ScrollView 仅在滑动特定视图时水平滚动 像这样:
<ScrollView horizontal=true>
<View style=styles.TopView></View>
<View style=styles.BottomView Scrollable=false></View>
</ScrollView>
我正在考虑使用这样的钩子禁用滚动 OnPressIn:
const [Scrollmove, setScrollmove] = useState(true);
<ScrollView horizontal=true scrollEnabled =Scrollmove>
<View style=styles.TopView></View>
<Pressable
onPressIn=()=>setScrollmove(false)
onPressOut=()=>setScrollmove(true)>
<View style=styles.BottomView></View>
</Pressable>
</ScrollView>
但我不知道它是否会起作用,有没有更好的方法来达到预期的效果?
注意:我上面写的代码段是伪代码
【问题讨论】:
【参考方案1】:你不能那样做。但是,您可以更改您的设计,例如,划分屏幕,一半可以滚动,另一半可以保留。
<View style=styles.TopView>
<Text>Stay</Text>
</View>
<ScrollView horizontal=true>
<View style=styles.BottomView Scrollable=false>
<Text>Scrollable</Text>
</View>
</ScrollView>
【讨论】:
其实我需要两个视图同时滚动,但只有顶部的视图控制滚动本身以上是关于如何禁用特定视图内的滚动?的主要内容,如果未能解决你的问题,请参考以下文章
滚动视图内的pageviewcontroller内的iOS tableview