Navigation 组件使用入门

时间:2021-7-21 作者:qvyue

Navigation 组件使用入门

如需在您的项目中添加 Navigation 支持,请向应用的 build.gradle 文件添加以下依赖项:

def nav_version = "2.3.0"

// Java language implementation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"

创建导航图

如需向项目添加导航图,请执行以下操作:

  1. 在“Project”窗口中,右键点击 res 目录,然后依次选择 New > Android Resource File。此时系统会显示 New Resource File 对话框。
  2. File name 字段中输入名称,例如“nav_graph”。
  3. Resource type 下拉列表中选择 Navigation,然后点击 OK
Navigation 组件使用入门
image-20210301095107291
Navigation 组件使用入门
image-20210301100618863

Navigation 三大件

Navigation 组件使用入门
image

创建NavHostFragment

Navigation 组件使用入门
image-20210301100908271

获取到NavController

Navigation 组件使用入门
image-20210301101957468

fragment之间跳转使用

Navigation 组件使用入门
image-20210301103659105
public class AFragment extends Fragment {
    Button button;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater,
                             @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_a, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        button = view.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Bundle bundle = new Bundle();
                bundle.putString("name", "from AFragment bundle");
                Navigation.findNavController(getView()).navigate(R.id.action_afragment_to_bfragment, bundle);
            }
        });
    }


}
Navigation 组件使用入门
image-20210301104525233

BottomNavigationView 使用

Navigation 组件使用入门
image-20210301122529623

添加menu配置

Navigation 组件使用入门
image-20210301122622144


Navigation 组件使用入门
image-20210301123152229

使用NavigationUI类 来对AppBar和navController进行绑定,这样点击BottomNavigationView配置的menu item 会自动使用 item android:id=”@+id/afragment” 进行fragment跳转


BottomNavigationView需要使用业务逻辑实现跳转,非默认使用NavigationUI,代码实现setOnNavigationItemSelectedListener

Navigation 组件使用入门
image-20210301150229724
Navigation 组件使用入门
image-20210301150259622

在navigation导航配置中,直接使用action来配置进入的fragment

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。