从零自学Andriod(二):BottomNavigationView的应用与问题

上一篇介绍了Res资源管理目录的大概结构,相信大部分人还是会搞不明白这其中的关系。没事,接下来我们就要结合实际代码来理解了。在上一篇我创建了带有底部导航菜单的项目,可以看到运行出来的效果已经有个App的基本框架了,起到关键作用的就是底部的导航菜单了。实现导航菜单的方式有很多种,我这只说说App里自带的BottomNavigationView。

一、BottomNavigationView

直接看代码,打开Java>com.example.myapp>MainActivity,这里要注意一下,使用BottomNavigationView需要import相关依赖,如果选择了创建带BottomNavigationView的项目,那么这个也会默认import。

import com.google.android.material.bottomnavigation.BottomNavigationView;

有一个被重写的onCreate方法。在方法中可以看到上一篇讲过的读取资源内容的方式:R.layout.activity_main和R.id.nav_view以及其他的R.id.xxx。

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//设置页面布局
        BottomNavigationView navView = findViewById(R.id.nav_view); //找到导航菜单组件
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
        NavigationUI.setupWithNavController(navView, navController);
    }

super.onCreate(savedInstanceState);就不说了大家都懂,看第二句:

setContentView(R.layout.activity_main);

我的理解是将res/layout/activity_main.html这个布局文件设置为整个app的主布局。这个文件下有两个子节点,代表底部的导航菜单(BottomNavigationView)和中间可显示的内容(fragment)。这些看属性名就挺好理解的,给节点设置id就可以通过R.id.xx的方式获取,而其他的也能看懂就是控件位置大小之类的。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?attr/actionBarSize">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginEnd="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/bottom_nav_menu" />

    <fragment
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true"
        app:layout_constraintBottom_toTo
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《电子工程师自学速成:提高篇》是一本针对电子工程师的自学提高资料,旨在帮助电子工程师通过自学提升自己的技能水平和知识深度。 首先,这本书适合已经具备了一定电子工程基础知识的工程师。它通过系统地介绍了电子工程师日常工作所需的各种专业知识和技能,如嵌入式系统设计、电路设计与分析、电子元器件选型与应用等。 其次,这本书采用了实际案例和具体应用场景进行讲解,帮助工程师更好地理解理论知识的实际应用。通过理论与实践的紧密结合,读者可以更加深入地了解各种电子设备的工作原理和设计思路,进一步提高自己的实际应用能力。 此外,这本书还包含了大量的实践性项目和实验,可以帮助读者巩固所学知识,并通过实际操作提高自己的动手能力。这些项目和实验都经过精心设计,力求符合实际应用场景和需求,读者在完成项目和实验的过程中能够真实地感受到电子工程的魅力和挑战。 最后,这本书还提供了一些学习方法和技巧,帮助读者更加高效地进行自学。这些方法和技巧包括如何制定学习计划、如何高效学习文献和资料、如何解决学习中遇到的问题等。这些内容不仅有助于读者在学习电子工程知识的过程中取得更好的效果,还可以帮助他们养成良好的学习习惯和科学的思维方式。 综上所述,《电子工程师自学速成:提高篇》是一本全面、系统、实践性强的电子工程师自学资料。通过学习这本书,电子工程师可以提高自己的专业技能和知识水平,成为一个更加出色的工程师。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值