BottomNavigationbar
源碼地址
使用
dependencies {
compile 'me.sugarkawhi:BottomNavigationBar:1.2.1'
}
功能
- 支持 圖片+文字 組合
- 支持 僅圖片
- 支持 未讀消息
- 支持 自定義布局
- 支持 切換動(dòng)畫(可關(guān)閉)
- 支持 選中tab再次點(diǎn)擊事件(多用于返回頂部或刷新)
預(yù)覽
圖片+文字
圖片+文字
僅圖片
僅圖片
支持消息
支持消息
支持切換動(dòng)畫
切換動(dòng)畫
使用
<me.sugarkawhi.bottomnavigationbar.BottomNavigationBar
android:id="@+id/bottomNavigationBar"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="bottom"
app:bnb_layoutId="@layout/bnb_item_view"
app:bnb_selectedColor="#000000"
app:bnb_unSelectedColor="#999999"
app:bnb_anim="false"
app:bnb_scale_ratio="1.1" />
屬性說明
屬性名 | 描述 |
---|---|
bnb_layoutId | 自定義Item布局文件 此項(xiàng)必須設(shè)置 |
bnb_selectedColor | 選中字體顏色 默認(rèn)#000000 |
bnb_unSelectedColor | 未選中字體顏色 默認(rèn)#999999 |
bnb_anim | 是否開啟動(dòng)畫 默認(rèn)false |
bnb_scale_ratio | 開啟動(dòng)畫后縮放程度 默認(rèn)1.1f anim為false不生效 |
說明: bnb_layoutId 布局文件有嚴(yán)格的要求犁功,否則出錯(cuò)
- ImageView id 必須為 bnb_item_icon
- 如果是圖片+文字 添加TextView 并且其id 必須為 bnb_item_text
- 如果是未讀消息 添加 TextView 并且其id 必須為bnb_item_badge
步驟
STEP1 創(chuàng)建BottomNavigationEntity的列表
List<BottomNavigationEntity> mEntities = new ArrayList<>();
mEntities.add(new BottomNavigationEntity(
"圖片",
R.drawable.ic_tab_album_default,
R.drawable.ic_tab_album_selected));
mEntities.add(new BottomNavigationEntity(
"視頻",
R.drawable.ic_tab_img_default,
R.drawable.ic_tab_img_selected));
mEntities.add(new BottomNavigationEntity(
"關(guān)注",
R.drawable.ic_tab_news_default,
R.drawable.ic_tab_news_selected));
mEntities.add(new BottomNavigationEntity(
"我的",
R.drawable.ic_tab_avatar_default,
R.drawable.ic_tab_avatar_selected, 10));
STEP2 創(chuàng)建BottomNavigationEntity的列表
bottomNavigationBar.setEntities(mEntities);
STEP3 設(shè)置監(jiān)聽
//點(diǎn)擊item
bottomNavigationBar.setBnbItemSelectListener(new BottomNavigationBar.IBnbItemSelectListener() {
@Override
public void onBnbItemSelect(int position) {
}
});
//重復(fù)點(diǎn)擊
bottomNavigationBar.setBnbItemDoubleClickListener(new BottomNavigationBar.IBnbItemDoubleClickListener() {
@Override
public void onBnbItemDoubleClick(int position) {
}
});