Material Design新秀Bottom navigation設(shè)計(jì)以及實(shí)現(xiàn)-下

前幾天我們了解了Bottom navigation的設(shè)計(jì)郁妈,今天我們我看看如何快速集成Bottom navigation矾削,本來之前還在糾結(jié)要不要按著Google的規(guī)范自己做一個(gè)開源的項(xiàng)目匪蟀,之后在Github上搜索了一下開源的項(xiàng)目,發(fā)現(xiàn)有類似做的相當(dāng)不錯(cuò)的卖局,我們就直接拿來用好了。在這個(gè)云時(shí)代我們寫程序也要有模塊化的思維号显,要懂得使用開源的項(xiàng)目臭猜、類庫(kù)。

三個(gè)條目顯示效果
五個(gè)條目顯示效果
平板顯示效果
  • 首先添加gradle依賴

java

dependencies {    
    compile 'com.roughike:bottom-bar:1.2.4'    
}
  • 使用Menu資源添加

xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/bottomBarItemOne"
    android:icon="@drawable/ic_recents"
    android:title="Recents" />
<item
    android:id="@+id/bottomBarItemTwo"
    android:icon="@drawable/ic_friends"
    android:title="Recents" />
<item
    android:id="@+id/bottomBarItemThree"
    android:icon="@drawable/ic_nearby"
    android:title="Recents" />
<item
    android:id="@+id/bottomBarItemFour"
    android:icon="@drawable/ic_favorites"
    android:title="Recents" />
<item
    android:id="@+id/bottomBarItemFive"
    android:icon="@drawable/ic_restaurants"
    android:title="Recents" />
</menu>
  • 代碼添加Bottom navigation Bar

java

 mBottomBar = BottomBar.attach(this, savedInstanceState);
    mBottomBar.setItemsFromMenu(R.menu.bottom_menu, new OnMenuTabClickListener() {
        @Override
        public void onMenuTabSelected(@IdRes int menuItemId) {
            if (menuItemId == R.id.bottomBarItemOne) {
                // 進(jìn)行操作新建fragment或者綁定viewpager.
            }
        }

        @Override
        public void onMenuTabReSelected(@IdRes int menuItemId) {
            if (menuItemId == R.id.bottomBarItemOne) {
                // 進(jìn)行操作新建fragment或者綁定viewpager.
            }
        }
    });
  • 設(shè)置Bottom navigationBar的顏色

java

//超過三個(gè)tab可以設(shè)置設(shè)置底部tab顏色
    mBottomBar.mapColorForTab(0, ContextCompat.getColor(this, R.color.colorAccent));
    mBottomBar.mapColorForTab(1, 0xFF5D4037);
    mBottomBar.mapColorForTab(2, "#7B1FA2");
    mBottomBar.mapColorForTab(3, "#FF5252");
    mBottomBar.mapColorForTab(4, "#FF9800");

java

 @Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
    //這句話不可省略以免方向改變以后丟失當(dāng)前bar的狀態(tài)
    mBottomBar.onSaveInstanceState(outState);
}
  • 添加Badges

java

// 為第一個(gè)tab添加badge, 紅色的背景色押蚤,數(shù)值"11".
BottomBarBadge unreadMessages = mBottomBar.makeBadgeForTabAt(0, "#FF0000", 11);

// 設(shè)置badge的可見性
unreadMessages.show();
unreadMessages.hide();

// 改變第一個(gè)tab的badge數(shù)目
unreadMessages.setCount(2);

// 改變顯示隱藏動(dòng)畫時(shí)間
unreadMessages.setAnimationDuration(200);

// 設(shè)置一直顯示
unreadMessages.setAutoShowAfterUnSelection(true);
  • 個(gè)性化設(shè)置

java

// 設(shè)置平板的tab與mobile版的tab一致
mBottomBar.noTabletGoodness();

// 設(shè)置黑色主題(盡在tab數(shù)目為3的情況下可用)
mBottomBar.useDarkTheme(true);

// 設(shè)置當(dāng)前激活的tab的顏色(盡在tab數(shù)目為3的情況下可用)
mBottomBar.setActiveTabColor("#009688");

// 設(shè)置tab字體
mBottomBar.setTextAppearance(R.style.MyTextAppearance);

// 設(shè)置字體庫(kù)字體:存放于 "/src/main/assets" 
mBottomBar.setTypeFace("MyFont.ttf");
  • 設(shè)置滑動(dòng)隱藏

java

mBottomBar = BottomBar.attachShy((CoordinatorLayout) findViewById(R.id.myCoordinator), 
findViewById(R.id.myScrollingContent), savedInstanceState);

xml

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myCoordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.v4.widget.NestedScrollView
    android:id="@+id/myScrollingContent"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- Your loooong scrolling content here -->
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

這次的項(xiàng)目引用看起來更復(fù)雜了一點(diǎn)蔑歌,不過獲得的收益也會(huì)更多一點(diǎn)的,我們不妨從基礎(chǔ)開始做起

大神Github地址:https://github.com/roughike/BottomBar

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末揽碘,一起剝皮案震驚了整個(gè)濱河市次屠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钾菊,老刑警劉巖帅矗,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異煞烫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)累颂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門滞详,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人紊馏,你說我怎么就攤上這事料饥。” “怎么了朱监?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵岸啡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我赫编,道長(zhǎng)巡蘸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任擂送,我火速辦了婚禮悦荒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘹吨。我一直安慰自己搬味,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布蟀拷。 她就那樣靜靜地躺著碰纬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪问芬。 梳的紋絲不亂的頭發(fā)上悦析,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音愈诚,去河邊找鬼她按。 笑死牛隅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酌泰。 我是一名探鬼主播媒佣,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼陵刹!你這毒婦竟也來了默伍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤衰琐,失蹤者是張志新(化名)和其女友劉穎也糊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羡宙,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狸剃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了狗热。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钞馁。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖匿刮,靈堂內(nèi)的尸體忽然破棺而出僧凰,到底是詐尸還是另有隱情,我是刑警寧澤熟丸,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布训措,位于F島的核電站,受9級(jí)特大地震影響光羞,放射性物質(zhì)發(fā)生泄漏绩鸣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一狞山、第九天 我趴在偏房一處隱蔽的房頂上張望全闷。 院中可真熱鬧,春花似錦萍启、人聲如沸总珠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽局服。三九已至,卻和暖如春驳遵,著一層夾襖步出監(jiān)牢的瞬間淫奔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工堤结, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唆迁,地道東北人鸭丛。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像唐责,于是被迫代替她去往敵國(guó)和親鳞溉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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