Абсолютно позиционированные просмотры
Если вы знаете ширину столбцов, вы можете использовать абсолютно позиционированные представления, перекрывающие базовый ScrollView
, они прекратят все касания ScrollView
.Это означает, что он будет прокручивать только ту часть, которая не покрыта абсолютно позиционированными видами.
Так что вы можете сделать что-то вроде этого
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>
)
}
Закуска
Вот закуска, демонстрирующая эту реализацию.Я установил backgroundColor
для абсолютно позиционированных видов, чтобы вы могли их четко видеть.https://snack.expo.io/@andypandy/partial-scrollview
Предостережение
Основная проблема этого решения заключается в том, что вы не сможете касаться чего-либо, находящегося ниже абсолютно позиционированных видов.Вы могли бы смягчить это, захватывая касания, используя жесты на каждом View
, а затем сопоставляя их с позициями на ScrollView
.