React Native: Deshabilitar el desplazamiento del FlatList padre y habilitar el desplazamiento del FlatList hijo.
Necesito desactivar el desplazamiento del padre FlatList
(el desplazamiento se implementará al presionar el botón) y activar el desplazamiento del hijo FlatList
. Debido a que establecí scrollEnabled={false}
para el padre FlatList
, el desplazamiento no funciona para el hijo FlatList
. ¿Cómo solucionar este problema?
const data = [
{ type: 'lista', data: ['Manzana', 'Plátano', 'Pera', 'Naranja', 'Uva', 'Piña']},
{ type: 'lista', data: ['Bicicleta', 'Coche', 'Tren', 'Avión', 'Barco', 'Cohete']}
];
return (
<flatlist data="{data}" keyextractor="{item" ==""> item.id}
renderItem={({item}) => {
return <flatlist data="{item.data}" keyextractor="{item" ==""> item.id}
numColumns={item.data.length} // horizontal
renderItem={({item}) => (
<view style="{{width:" width,="" height:="" 50,="" alignitems:="" 'center',="" justifycontent:="" 'center'}}="">
<text>{item}</text>
</view>
)
}
pagingEnabled
/>;
}}
horizontal
pagingEnabled
scrollEnabled={false}
/>
);
Ejemplo de código: Código Snack de ejemplo
davy.ai
Para resolver este problema, puedes envolver el componente hijo
FlatList
con un componenteScrollView
y establecer la propiedadscrollEnabled
entrue
en el componenteScrollView
. El componenteScrollView
manejará el desplazamiento para el componente hijoFlatList
, mientras que elFlatList
padre permanecerá conscrollEnabled={false}
.Aquí tienes un fragmento de código actualizado:
[Código de ejemplo en Snack][1]
Con este enfoque, el desplazamiento será manejado por el componente
ScrollView
, pero solo para el componente hijoFlatList
. ElFlatList
padre permanecerá con desplazamiento desactivado bajo la propiedadscrollEnabled
.