Android——BottomNavigationView簡(jiǎn)單學(xué)習(xí)使用

BottomNavigationViewandroid.support:design:25.0.0推出缰揪,想學(xué)習(xí)使用,就需要將依賴的design包升級(jí)到25.0.0版本,好像兼容到系統(tǒng)版本14,不是很確定烛缔。個(gè)人感覺(jué)現(xiàn)在兼容到19應(yīng)該就可以了吧


1. 簡(jiǎn)單使用

先看效果:


BottomNavigationView默認(rèn)效果

優(yōu)點(diǎn):使用很方便馏段;過(guò)度動(dòng)畫(huà)效果不錯(cuò);不用改變顏色來(lái)標(biāo)記狀態(tài)践瓷,也能有直觀的選中狀態(tài)
槽點(diǎn):由于有動(dòng)畫(huà)效果院喜,總覺(jué)得比例有點(diǎn)別扭,尤其是默認(rèn)情況下晕翠,選中第一個(gè)或者最后一個(gè)tab時(shí)

不過(guò)感覺(jué)優(yōu)點(diǎn)完全可以蓋住槽點(diǎn)喷舀,以后打算使用

素材圖片是通過(guò)一個(gè)Android Stuido插件android material design icon generator,進(jìn)行下載的淋肾。這個(gè)插件中有官方全套的Material Design圖片素材硫麻,安裝這個(gè)插件后,可以通過(guò)new最后一個(gè)選項(xiàng)Material Design Icon進(jìn)行下載想要素材樊卓,也可以在布局文件窗口直接快捷鍵ctrl + alt +m進(jìn)入下載界面


1.1 布局文件 <p>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bnv_bottom_activity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:itemBackground="@color/colorAccent"
        app:itemIconTint="@android:color/white"
        app:itemTextColor="@android:color/white"
        app:menu="@menu/bottom_view" />


</RelativeLayout>

關(guān)鍵在于四個(gè)見(jiàn)名知意的app屬性


創(chuàng)建一個(gè)menu文件夾拿愧,新建名字為bottom_view.xmlMenu resource文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

     <item
        android:icon="@drawable/ic_account_balance_white_24dp"
        android:title="首頁(yè)" />
    <item
        android:icon="@drawable/ic_face_white_24dp"
        android:title="好友" />
    <item
        android:icon="@drawable/ic_accessibility_white_24dp"
        android:title="廣場(chǎng)" />

    <item
        android:icon="@drawable/ic_settings_white_24dp"
        android:title="設(shè)置" />
        
</menu>

目前為止,對(duì)Menu的基礎(chǔ)知識(shí)碌尔,了解也不多浇辜,感覺(jué)也得學(xué)習(xí)學(xué)習(xí)啦


2. 在Activity使用 <p>

public class BottomViewActivity extends AppCompatActivity {
    private MenuItem lastItem; // 上一個(gè)選中的item

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bottom_view);
        initView();
    }

    /**
     * 初始化
     */
    private void initView() {
       BottomNavigationView bnv = (BottomNavigationView) findViewById(R.id.bnv_bottom_activity);
        //拿到默認(rèn)選中的item
        lastItem = bnv.getMenu().getItem(0);
        //點(diǎn)擊選擇item
        bnv.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                if (lastItem != item) { // 判斷當(dāng)前點(diǎn)擊是否為item自身
                    lastItem = item;
                    String title = item.getTitle().toString();
                    Toast.makeText(BottomViewActivity.this, title, Toast.LENGTH_LONG).show();
                    return true;
                }
                return false;
            }
        });
    }
}

稍微做了一點(diǎn)的處理,點(diǎn)擊當(dāng)前選中的tab無(wú)效

記得之前學(xué)習(xí)使用RudioGroup來(lái)實(shí)現(xiàn)底部的tab導(dǎo)航時(shí)唾戚,各種選中未選中狀態(tài)奢赂,比較繁瑣,BottomNavigionView的確很方便颈走。簡(jiǎn)單掃了一眼源碼,代碼量相當(dāng)?shù)纳僭凼浚槿鸽m小五臟俱全立由,涉及的知識(shí)也是不少的,以后再進(jìn)行學(xué)習(xí)序厉,嘗試定制化


3. 最后 <p>

之前很少關(guān)注官方新推出的各種庫(kù)锐膜,完全不知道都有哪些好用的控件和工具,真是錯(cuò)過(guò)一大堆好的學(xué)習(xí)資源弛房,罪過(guò)罪過(guò)道盏。以后要開(kāi)始留意跟進(jìn)學(xué)習(xí)

本人很菜,有錯(cuò)誤請(qǐng)指出

共勉 :)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末文捶,一起剝皮案震驚了整個(gè)濱河市荷逞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌粹排,老刑警劉巖种远,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異顽耳,居然都是意外死亡坠敷,警方通過(guò)查閱死者的電腦和手機(jī)妙同,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)膝迎,“玉大人粥帚,你說(shuō)我怎么就攤上這事∠薮危” “怎么了芒涡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)掂恕。 經(jīng)常有香客問(wèn)我拖陆,道長(zhǎng),這世上最難降的妖魔是什么懊亡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任依啰,我火速辦了婚禮,結(jié)果婚禮上店枣,老公的妹妹穿的比我還像新娘速警。我一直安慰自己,他們只是感情好鸯两,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布闷旧。 她就那樣靜靜地躺著,像睡著了一般钧唐。 火紅的嫁衣襯著肌膚如雪忙灼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天钝侠,我揣著相機(jī)與錄音该园,去河邊找鬼。 笑死帅韧,一個(gè)胖子當(dāng)著我的面吹牛里初,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忽舟,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼双妨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了叮阅?” 一聲冷哼從身側(cè)響起刁品,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浩姥,沒(méi)想到半個(gè)月后哑诊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡及刻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年镀裤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了竞阐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暑劝,死狀恐怖骆莹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情担猛,我是刑警寧澤咨演,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布饺饭,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏茄猫。R本人自食惡果不足惜怖竭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一惊楼、第九天 我趴在偏房一處隱蔽的房頂上張望捻艳。 院中可真熱鬧,春花似錦比驻、人聲如沸该溯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)狈茉。三九已至,卻和暖如春掸掸,著一層夾襖步出監(jiān)牢的瞬間氯庆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工扰付, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留点晴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓悯周,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親陪竿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子禽翼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容