package-info.java
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Navigation is a framework for navigating between 'destinations' within an Android
* application that provides a consistent API whether destinations are implemented as
* {@link androidx.fragment.app.Fragment Fragments}, {@link android.app.Activity Activities}, or
* other components.
* <p>
* There are 3 major components in Navigation.
* <ul>
* <li>{@link androidx.navigation.NavGraph}: A navigation graph encapsulates a set
* of {@link androidx.navigation.NavDestination destinations}. It can be created by
* inflating a navigation XML file, by constructing it programmatically,
* or a combination of the two.
* </li>
* <li>{@link androidx.navigation.NavController}: This is the main entry
* point for interacting with the Navigation Graph, translating calls to
* {@link androidx.navigation.NavController#navigate(int)},
* {@link androidx.navigation.NavController#popBackStack()}, and
* {@link androidx.navigation.NavController#navigateUp()} into the appropriate operations.
* </li>
* <li>{@link androidx.navigation.NavHost}: The container that hosts a
* {@link androidx.navigation.NavController} and provides support for one or more specific
* types of {@link androidx.navigation.NavDestination destinations}. For example,
* {@link androidx.navigation.fragment.NavHostFragment} allows you to use
* {@link androidx.navigation.fragment.FragmentNavigator.Destination fragment destinations}.
* </li>
* </ul>
* Below is an example of working with a NavController.
* <pre class="prettyprint">
* // File: HomeFragment.java
* public void onViewCreated(View view, {@literal @}Nullable Bundle savedInstanceState) {
* // For example purposes, assume our layout created in onCreateView has a Button
* // that should navigate the user to a destination
* Button b = view.findViewById(R.id.view_details);
*
* b.setOnClickListener(v -> {
* // Retrieve the NavController from any View within a NavHost
* NavController navController = Navigation.findNavController(v);
* navController.navigate(R.id.details));
* }
*
* // Or use the convenience method in Navigation to combine the previous steps
* b.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.details));
* }
* </pre>
* <p>
* Please see the documentation of individual classes for details.
*/
package androidx.navigation;