我有一个这样的 View
<View style={styles.columnView}>
<View style={[styles.columnButtonItem, styles.columnC]}><Text></Text></View>
<View style={[styles.columnButtonItem, styles.columnA]}><Text></Text></View>
<View style={[styles.columnButtonItem, styles.columnB]}><Text></Text></View>
<View style={[styles.columnButtonItem, styles.columnE]}><Text>{value}</Text></View>
<View style={[styles.columnButtonItem, styles.columnAs]}><Text></Text></View>
<View style={[styles.columnButtonItem, styles.columnT]}><Text></Text></View>
</View>
迭代之后,我编写了一个如下表:
有没有办法在单列上添加ScrollView? 例如,我想仅在columnE上启用滚动。 显然,当我滚动columnE时,我想滚动所有表格。
谢谢
最佳答案
绝对定位 View
如果您知道列的宽度,那么您可以使用绝对定位的与底层 ScrollView 重叠的 View ,它们将停止对 ScrollView 的所有触摸。这意味着它只会在绝对定位 View 未覆盖的部分上滚动。
所以你可以做这样的事情
render() {
// set these widths to be the size before row E and the size after row E
let leftWidth = '33%';
let rightWidth = '33%';
return (
<View style={{flex: 1}}>
<ScrollView style={{flex: 1}}>
// items for the scroll view go here
</ScrollView>
<View style={{position:'absolute', top:0, left: 0, bottom: 0, width: leftWidth}} />
<View style={{position:'absolute', top:0, right: 0, bottom: 0, width: rightWidth}} />
</View>
)
}
小吃
这是展示此实现的小吃。我在绝对定位的 View 上设置了 backgroundColor
,以便您可以清楚地看到它们。
https://snack.expo.io/@andypandy/partial-scrollview
警告
此解决方案的主要问题是您将无法触摸绝对定位 View 下方的任何内容。您可以通过使用 gestures 捕获触摸来缓解这种情况在每个 View
上,然后将它们映射到 ScrollView
上的位置。
关于javascript - react 原生滚动子列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54404266/