Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

377
Vistas
animación de cajón personalizada con navegación de reacción usando useDrawerProgress()

Estoy tratando de lograr esta animación con la navegación reactiva v6 donde la pantalla se reduce cuando se abre el cajón.

Aquí está mi código hasta ahora:

Aplicación.js

 <Drawer.Navigator drawerContent={(props) => <CustomDrawer {...props} />} initialRouteName="Home" > <Drawer.Screen name="Home" component={Home} /> <Drawer.Screen name="About" component={About} /> </Drawer.Navigator>

Inicio.js

 const Home = ({ navigation, setProgress }) => { const progress = useDrawerProgress(); const scale = Animated.interpolateNode(progress.value, { inputRange: [0, 1], outputRange: [1, 0.7], }); ... return ( <Animated.View style={{ flex: 1, transform: [{ scale }] }}> ... </Animated.View>

Sin embargo, esto no funciona como se esperaba, transform: scale no cambia en la interfaz de usuario. Si realizo algunos cambios ficticios en Home.js mientras el cajón está abierto, la pantalla de inicio se reduce repentinamente.

Creo que el const progress = useDrawerProgress() no actualiza el progress

Editar: muy similar a esta pregunta aquí

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

useDrawerProgress actualice el progreso de la apertura del cajón, pero necesitamos una pequeña lógica de reescritura de la animación, intente esto:

 import { interpolate, Extrapolate, useAnimatedStyles } from react-native-reanimated; . . . const drawerProgress = useDrawerProgress(); const animatedStyle = useAnimatedStyle(() => { const scale = interpolate(drawerProgress.value, [0, 1], [1, 0.8], { extrapolateRight: Extrapolate.CLAMP, }); const borderRadius = interpolate(drawerProgress.value, [0, 1], [0, 10], { extrapolateRight: Extrapolate.CLAMP, }); return { transform: [{ scale }], borderRadius, }; });
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda