一起Talk Android吧(第二百六十三回:Android中的BottomNavigationView大结局)
16lz
2021-12-04
各位看官们大家好,上一回中咱们说的是Android中BottomNavigationView的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!
看官们,我们在前面章回中介绍了如何使用BottomNavigationView控件,本章回中我们将对它做一个整体的总结,并且提供全部源代码。完整的代码如下:
布局文件如下(在设置控件高度时需要使用weight属性,不然它无法显示在布局最下方)。
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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/container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".NaviActivity"> <TextView android:id="@+id/message" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" android:text="@string/title_home" /> <android.support.design.widget.BottomNavigationView android:id="@+id/navigation" android:layout_marginBottom="1dp" android:background="?android:attr/windowBackground" android:layout_width="match_parent" android:layout_weight="1" android:layout_height="0dp" app:menu="@menu/navigation" />LinearLayout>
布局中使用的menu资源如下:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/navigation_home" android:icon="@drawable/ic_home_black_24dp" android:title="@string/title_home" /> <item android:id="@+id/navigation_dashboard" android:icon="@drawable/ic_dashboard_black_24dp" android:title="@string/title_dashboard" /> <item android:id="@+id/navigation_notifications" android:icon="@drawable/ic_notifications_black_24dp" android:title="@string/title_notifications" />menu>
代码文件如下:
package com.example.talk8.blogappall;import android.content.Intent;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.design.widget.BottomNavigationView;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.TextView;import android.widget.Toast;public class NaviActivity extends AppCompatActivity { private static final String TAG = "NaviActivity xxl"; private TextView mTextMessage; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_home: mTextMessage.setText(R.string.title_home); return true; case R.id.navigation_dashboard: mTextMessage.setText(R.string.title_dashboard); return true; case R.id.navigation_notifications: mTextMessage.setText(R.string.title_notifications); return true; } return false; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_navi); mTextMessage = (TextView) findViewById(R.id.message); BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); }}
上面的代码我们大部分是使用AST这个工具生成的,比如菜单项和监听器。毕竟导航菜单也是一种模板,因此工具中包含了此模板,在New Activity时选择Bottom Navigation Activity就可以。不过工具生成的属于模板,我们还需要在模板的基础上进行修改,比如菜单中的项目,图标和背景;监听器中对不同菜单项目的响应。大家可以结合自己项目的需求在工具提供的模板上进行修改。
各位看官,关于Android中BottomNavigationView的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
更多相关文章
- 性能优化系列-Android(安卓)内存泄漏例子
- 用 Golang 开发 Android(安卓)应用(七)—— OpenCV 使用
- Android社交类APP常用的动态消息发布通用模板
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(
- Android分享笔记(6) Android(安卓)自定义UI模板
- Android和设计模式:模板模式
- Android开发实践:Android.mk模板
- android中的autocomplete例子小结