一起Talk Android吧(第二百六十三回:Android中的BottomNavigationView大结局)

各位看官们大家好,上一回中咱们说的是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的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

猜你喜欢

转载自blog.csdn.net/talk_8/article/details/107441709
今日推荐