es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Diagrama de navegación con ViewPager2 Android

Mi ViewPager consiste en 2 fragmentos que se muestran correctamente y funcionan bien.

Desde el fragmento del ViewPager quiero moverme a otro fragmento a través del gráfico de navegación.

Este es mi gráfico:

<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/offer_nav_graph" app:startdestination="@id/offersFragment">

<fragment android:id="@+id/offersFragment" android:name="com.octave.offers.OffersFragment" android:label="offers_fragment" tools:layout="@layout/offers_fragment"></fragment>

<fragment android:id="@+id/availableOfferDetailFragment" android:name="com.octave.offers.available.AvailableOfferDetailFragment" android:label="fragment_available_offer_detail" tools:layout="@layout/fragment_available_offer_detail"></fragment>

<fragment android:id="@+id/availableOffersFragment" android:name="com.octave.offers.available.AvailableOffersFragment" android:label="fragment_available_offers" tools:layout="@layout/fragment_available_offers">

    <action android:id="@+id/action_availableOffersFragment_to_availableOfferDetailFragment" app:destination="@id/availableOfferDetailFragment">
        <argument android:name="offerId" app:argtype="integer" android:defaultvalue="-1"></argument>
    </action>
</fragment>
</navigation>

Fragmento de ofertas: tiene ViewPager
Fragmento de oferta disponible: uno de los fragmentos en el ViewPager
Fragmento de detalle de oferta disponible: quiero navegar allí

En el clic de un botón, estoy llamando a esto:

AvailableOffersFragmentDirections.actionAvailableOffersFragmentToAvailableOfferDetailFragment(offerId)

La excepción:

No se puede encontrar la acción/destino de navegación com.octave.staging:id/action_availableOffersFragment_to_availableOfferDetailFragment desde el destino actual Destination(com.octave.staging:id/homeFragment) label=HomeFragment class=com.octave.home.HomeFragment

¿Qué está mal aquí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el destino actual es el HomeFragment y no se puede encontrar la acción/destino de navegación al AvailableOfferDetailFragment desde el destino actual.

    Para solucionar esto, asegúrese de que el código que llama a la acción de navegación esté dentro del fragmento que se muestra actualmente en el viewpager, que es el AvailableOffersFragment. Verifique nuevamente que las IDs utilizadas en la acción de navegación coincidan con las IDs en el gráfico de navegación. También es posible que el gráfico de navegación no esté configurado correctamente o esté vinculado a la actividad correcta.

Comments are closed.