亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

Android使用BottomNavigationBar實(shí)現(xiàn)底部導(dǎo)航欄

2019-10-21 21:25:25
字體:
供稿:網(wǎng)友

本文實(shí)例為大家分享了Android實(shí)現(xiàn)底部導(dǎo)航欄的具體代碼,供大家參考,具體內(nèi)容如下

展示

MODE_FIXED+BACKGROUND_STYLE_STATIC效果

Android,BottomNavigationBar,底部導(dǎo)航欄

DE_FIXED+BACKGROUND_STYLE_RIPPLE效果

Android,BottomNavigationBar,底部導(dǎo)航欄

MODE_SHIFTING+BACKGROUND_STYLE_STATIC效果

Android,BottomNavigationBar,底部導(dǎo)航欄

MODE_SHIFTING+BACKGROUND_STYLE_RIPPLE效果

Android,BottomNavigationBar,底部導(dǎo)航欄

1在Gradle中添加

compile ‘com.ashokvarma.android:bottom-navigation-bar:0.9.5'

2布局實(shí)現(xiàn)

 <com.ashokvarma.bottomnavigation.BottomNavigationBar    android:layout_gravity="bottom"    android:id="@+id/bottom_navigation_bar"    android:layout_width="match_parent"    android:layout_height="wrap_content"/>

3類中Activity中添加BottomNavigationItem

BottomNavigationBar bottomNavigationBar = (BottomNavigationBar) findViewById(R.id.bottom_navigation_bar); bottomNavigationBar        .addItem(new BottomNavigationItem(R.drawable.ic_home_white_24dp, "Home"))        .addItem(new BottomNavigationItem(R.drawable.ic_book_white_24dp, "Books"))        .addItem(new BottomNavigationItem(R.drawable.ic_music_note_white_24dp, "Music"))        .addItem(new BottomNavigationItem(R.drawable.ic_tv_white_24dp, "Movies & TV"))        .addItem(new BottomNavigationItem(R.drawable.ic_videogame_asset_white_24dp, "Games"))        .initialise();

4設(shè)置事件監(jiān)聽器TabChangeListener

 bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener(){      @Override      public void onTabSelected(int position) {      }      @Override      public void onTabUnselected(int position) {]      }      @Override      public void onTabReselected(int position) {      }    });

5.代碼實(shí)現(xiàn)

package com.android.xiaobai;  import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.util.Log;  import com.ashokvarma.bottomnavigation.BottomNavigationBar; import com.ashokvarma.bottomnavigation.BottomNavigationItem;  import java.util.ArrayList;  import fragment.ContactsFragment; import fragment.DongtaiFragment; import fragment.MsgFragment;  /**  * Created by xiaobai on 2018/1/31/031.  */  public class MessageActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {   private ArrayList<Fragment> fragments;   private BottomNavigationBar bottomNavigationBar;   private MsgFragment msgFragment;   private ContactsFragment contactsFragment;   private DongtaiFragment dongtaiFragment;   private FragmentManager fragmentManager;   private FragmentTransaction transaction;   int lastSelectedPosition = 0;    @Override   protected void onCreate(@Nullable Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activty_message);      bottomNavigationBar = findViewById(R.id.bottom_navigation_bar);     init();   }    private void init() {     //要先設(shè)計(jì)模式后再添加圖標(biāo)!     //設(shè)置按鈕模式 MODE_FIXED表示固定  MODE_SHIFTING表示轉(zhuǎn)移     bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);     //設(shè)置背景風(fēng)格     // BACKGROUND_STYLE_STATIC表示靜態(tài)的     //BACKGROUND_STYLE_RIPPLE表示漣漪的,也就是可以變化的 ,跟隨setActiveColor里面的顏色變化     bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);     //添加并設(shè)置圖標(biāo)、圖標(biāo)的顏色和文字     bottomNavigationBar         .addItem(new BottomNavigationItem(R.drawable.im_botton_message, "消息")).setActiveColor(R.color.blue)         .addItem(new BottomNavigationItem(R.drawable.im_botton_contacts, "聯(lián)系人")).setActiveColor(R.color.red)         .addItem(new BottomNavigationItem(R.drawable.im_botton_dongtai, "動(dòng)態(tài)")).setActiveColor(R.color.orign)         .setFirstSelectedPosition(lastSelectedPosition )         .initialise();      bottomNavigationBar.setTabSelectedListener(this);     setDefaultFragment();   }    //設(shè)置初始界面   private void setDefaultFragment() {     fragmentManager = getSupportFragmentManager();     transaction = fragmentManager.beginTransaction();     transaction.replace(R.id.layFrame, MsgFragment.newInstance("消息"));     transaction.commit();   }    @Override   public void onTabSelected(int position) {     fragmentManager = getSupportFragmentManager();     transaction = fragmentManager.beginTransaction();     switch (position) {       case 0:         if (msgFragment == null) {           msgFragment = MsgFragment.newInstance("消息");         }         transaction.replace(R.id.layFrame, msgFragment);         break;       case 1:         if (contactsFragment == null) {           contactsFragment = ContactsFragment.newInstance("聯(lián)系人");         }         transaction.replace(R.id.layFrame, contactsFragment);         break;       case 2:         if (dongtaiFragment == null) {           dongtaiFragment = DongtaiFragment.newInstance("動(dòng)態(tài)");         }         transaction.replace(R.id.layFrame, dongtaiFragment);         break;       default:         break;     }     // 事務(wù)提交     transaction.commit();   }    @Override   public void onTabUnselected(int position) {     Log.d("dongtaiFragment", "onTabUnselected() called with: " + "position = [" + position + "]");   }    @Override   public void onTabReselected(int position) {    } } 
package fragment;  import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView;  import com.android.xiaobai.R;  /**  * Created by xiaobai on 2018/1/31/031.  */  public class MsgFragment extends BaseFragment {   /**    * 標(biāo)志位,標(biāo)志已經(jīng)初始化完成    */   private boolean isPrepared;   /**    * 是否已被加載過一次,第二次就不再去請(qǐng)求數(shù)據(jù)了    */   private boolean mHasLoadedOnce;   TextView textView;   @Nullable   @Override   public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {     if (mView == null) {       // 需要inflate一個(gè)布局文件 填充Fragment       mView = inflater.inflate(R.layout.fragment_msg, container, false);       initView();       isPrepared = true; //    實(shí)現(xiàn)懶加載       lazyLoad();     }     //緩存的mView需要判斷是否已經(jīng)被加過parent, 如果有parent需要從parent刪除,要不然會(huì)發(fā)生這個(gè)mView已經(jīng)有parent的錯(cuò)誤。     ViewGroup parent = (ViewGroup) mView.getParent();     if (parent != null) {       parent.removeView(mView);     }      return mView;   }   /**    * 初始化控件    */   private void initView() {    }    @Override   public void lazyLoad() {     if (!isPrepared || !isVisible || mHasLoadedOnce) {       return;     }     //填充各控件的數(shù)據(jù)     mHasLoadedOnce = true;   }   public static MsgFragment newInstance(String param1) {     MsgFragment fragment = new MsgFragment();     Bundle args = new Bundle();     args.putString("agrs1", param1);     fragment.setArguments(args);     return fragment;   } } 
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="vertical"   tools:context=".MessageActivity">    <FrameLayout     android:id="@+id/layFrame"     android:layout_width="match_parent"     android:layout_height="0dp"     android:layout_weight="1" />    <com.ashokvarma.bottomnavigation.BottomNavigationBar     android:id="@+id/bottom_navigation_bar"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:layout_gravity="bottom" /> </LinearLayout> 
package fragment;  import android.support.v4.app.Fragment; import android.view.View;   /**  * Created by xiaobai on 2018/1/31/031.  */  public abstract class BaseFragment extends Fragment {   /**    * Fragment當(dāng)前狀態(tài)是否可見    */   public boolean isVisible;    /**    * inflate布局文件 返回的view    */   public View mView;    /**    * 簡化 findViewById    *    * @param viewId    * @param <T>    * @return    */   protected <T extends View> T find(int viewId) {     return (T) mView.findViewById(viewId);   }    /**    * setUserVisibleHint是在onCreateView之前調(diào)用的    * 設(shè)置Fragment可見狀態(tài)    */   @Override   public void setUserVisibleHint(boolean isVisibleToUser) {     super.setUserVisibleHint(isVisibleToUser);     /**      * 判斷是否可見      */     if (getUserVisibleHint()) {       isVisible = true;       onVisible();     } else {       isVisible = false;       onInvisible();     }   }    /**    * 可見    */   private void onVisible() {     lazyLoad();   }    /**    * 不可見    */   private void onInvisible() {   }    /**    * 延遲加載    * 子類必須重寫此方法    */   public abstract void lazyLoad(); } 

BottomNavigationBar 圖標(biāo)和文字的間距:

在自己項(xiàng)目里value文件夾中的dimens.xml里面復(fù)寫fixed_height_bottom_padding(默認(rèn)是10dp,值越小,間距越大。適合的模式是BottomNavigationBar.MODE_FIXED)

Android,BottomNavigationBar,底部導(dǎo)航欄

如果模式是BottomNavigationBar.MODE_SHIFTING也是一樣,復(fù)寫和修改相關(guān)的參數(shù)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
一本色道久久综合亚洲精品婷婷| 久久精品水蜜桃av综合天堂| 精品丝袜在线| 欧美日本久久| 看电视剧不卡顿的网站| 成人免费一区二区三区| 日韩精品久久久久久久的张开腿让| 欧美狂野另类xxxxoooo| 91短视频在线观看| 免费偷拍视频网站| 欧美作爱福利免费观看视频| 中文字幕天天干| 中文字幕久热精品在线视频| 亚洲第一区中文字幕| 蜜桃视频在线观看免费视频网站www| 在线视频国产福利| 开心久久婷婷综合中文字幕| segui88久久综合9999| 丰满少妇乱子伦精品看片| 国精品人伦一区二区三区蜜桃| 久久久亚洲高清| 经典三级一区二区| 米奇精品关键词| 影音先锋亚洲视频| 久久亚洲综合| 猛男gaygay欧美视频| 亚洲久草视频| 波多野结衣在线观看| 全部av―极品视觉盛宴亚洲| 欧美在线视频一区二区三区| 久久www成人_看片免费不卡| 国产亚洲精品bv在线观看| 蜜桃麻豆www久久国产精品| 国产欧美综合一区二区三区| 色哟哟在线观看视频| 在线观看日韩毛片| 亚洲欧美国产va在线影院| 国产黄色三级网站| 亚洲一区尤物| 免费看h片网站| 欧美黑人性受xxxx喷水| 青青草视频在线免费观看| 欧洲熟妇精品视频| 欧美高清videosex极品| 日韩大片在线免费观看| 午夜伦理一区二区| 亚洲综合国产精品| 亚洲每日更新| 精品日韩欧美| 男人操女人免费网站| 亚洲成人资源在线| 五月天综合激情网| 美女福利精品视频| 国产精品麻豆视频| 国产精品69久久| a在线免费观看| 99re在线视频精品| 欧洲亚洲精品视频| 7777精品伊人久久久大香线蕉完整版| 97成人精品区在线播放| 日韩在线视频免费| 性欧美丰满熟妇xxxx性仙踪林| 久久综合狠狠综合久久激情| 久久无码av三级| 亚洲无线一线二线三线区别av| 国内一区二区三区在线视频| 日本中文字幕一区二区有码在线| 欧美不卡在线视频| 久久先锋资源| 素人啪啪色综合| 91插插插插插插插插| 国产成人精品一区二区三区视频| av小片在线| 欧美在线观看在线观看| 精品视频一区二区观看| 在线观看av不卡| 欧美一区午夜视频在线观看| 91国产在线免费观看| 少妇高潮爽到全身痉挛抽搐| 国产精品9999久久久久仙踪林| 国产精品v亚洲精品v日韩精品| www.麻豆传媒| 国产精品变态另类虐交| 成人午夜sm精品久久久久久久| 免费电影一区二区三区| 成人动漫一区二区| 独立日3在线观看完整版| 国产免费视频传媒| 激情综合五月婷婷| 国产精一区二区三区| 精品性高朝久久久久久久| 你懂的成人av| 欧美日韩精品一区二区三区蜜桃| 性欧美18一19内谢| av在线播放一区| 久久99精品国产99久久6尤物| 久久久国产精品麻豆| 亚洲男人天堂古典| 欧美酷刑日本凌虐凌虐| 在线综合视频| av最新在线| 大地资源网在线观看免费官网| 精品国产一二| 91免费看片网站| 亚洲资源在线播放| 日韩一区二区在线免费观看| 中文字幕网站在线观看| 国产 欧美 日韩 一区| 久久久久久久久艹| 91在线你懂的| 日韩免费高清视频网站| 一二三四社区在线视频6| 盗摄精品av一区二区三区| 成人久久18免费网站图片| 日本一本视频| 大地资源中文在线观看免费版| 欧美一区视频在线| 免费网站黄在线观看| 清清草免费视频| 亚洲小视频在线观看| 免费成人高清在线视频| xxxx欧美xxxx黑人| 综合激情婷婷| 国产精品成人免费| 一道本一区二区三区| 亚洲国产精品久久久久婷蜜芽| 色播视频在线观看| 日韩美女精品| 激情伦成人综合小说| 国产+成+人+亚洲欧洲自线| 偷窥自拍欧美色图| 欧美日韩一区二区三区免费| 日本一区二区成人| 日韩高清一区二区| 亚洲免费在线播放视频| av在线麻豆| 国产精品自在欧美一区| 影音先锋亚洲电影| 成人综合久久网| 最新国产精品亚洲| 国产激情第一页| 日本欧美肥老太交大片| 精品国产区一区二| 欧美最猛黑人xxxx黑人猛交黄| 亚洲激情午夜| 欧美性猛交xxx高清大费中文| 国内毛片久久| eeuss影院www在线| 免费观看亚洲视频| 欧美一级欧美三级在线观看| 国产福利在线免费观看| 影音先锋中文字幕一区| 欧美电影免费看| 国内外成人免费激情在线视频| 亚洲午夜久久久久久尤物| 国产亚洲人成网站在线观看| 99r国产精品视频| 久久国产精品影视| 欧洲精品亚洲精品| 成人性生交大片免费观看嘿嘿视频| 亚洲精品在线播放| 四虎永久在线观看免费网站网址| 女人香蕉久久**毛片精品| 国产麻豆免费观看| 日本三级在线播放完整版| 免费网站www在线观看| 日本免费一区二区三区等视频| 黄色亚洲在线| 美女视频第一区二区三区免费观看网站| 日本一级黄色大片| 久久99精品视频一区97| 中文字幕一区二区三区免费看| 国产三级视频在线播放线观看| 精品一区久久| 亚洲高清在线观看| 国产精品区二区三区日本| 日韩精品人妻中文字幕有码| 欧美日韩日本国产亚洲在线| 一区二区三区无码高清视频| a天堂在线观看| 久久美女免费视频| 国语自产在线不卡| 你懂的亚洲视频| 99精品欧美一区二区三区综合在线| 国产91视觉| 992tv在线观看在线播放| 黄色激情小视频| 久久久一二三区| 男人天堂网站在线| 19禁羞羞电影院在线观看| 精品国产乱码久久久久久蜜臀网站| 中文字幕巨乱亚洲| 韩日成人影院| 在线视频这里只有精品| 欧美三级一区二区| 欧美精品免费在线观看| 99在线热播精品免费| www.黄色一片| 久久久久国产精品免费网站| 黄色一级片播放| xxxx黄色片| 精品免费日韩av| 国产性一级片| 久久深夜福利免费观看| 国模精品一区| 欧美一站二站| 国产视频精品网| 国产又粗又猛又爽又黄的网站| 免费黄色av电影| 男人天堂视频在线观看| 日本一级在线观看| 色一情一乱一区二区| 国产不卡在线| 在线播放国产视频| 亚洲成人一二三| 黄色电影网站在线观看| 成人高潮成人免费观看| 亚洲国产91精品在线观看| 国产一区二区三区久久久久久久久| 伊人再见免费在线观看高清版| 欧美性xxxxx| 国产精品美女无圣光视频| 一本二本三本亚洲码| 亚洲精品国产精品国自产网站| 日本a级c片免费看三区| 日本最新高清不卡中文字幕| 综合婷婷亚洲小说| 亚洲精品乱码久久久久| 夫妻免费无码v看片| 久久五月情影视| 视频一区二区三区免费观看| 婷婷激情5月天| 欧洲av不卡| 91精品国产一区二区三区动漫| 国产日韩亚洲| 黄色裸体一级片| 视频在线这里都是精品| 日韩在线观看电影完整版高清免费| 91视频国产资源| 五月天av影院| 国产精品免费久久久久影院| 国产精品天美传媒沈樵| 欧美最大成人综合网| 精品三级在线观看视频| 亚洲高清成人| 国产香蕉在线视频| 中国色在线日|韩| www.成人三级视频| 国产精品视频久久久久久久| 免费看成人片| www.51色.com| 国产精品你懂的在线| 欧美美女福利视频| 欧美日韩不卡| 136福利视频| 免费网站在线观看视频| 亚洲综合爱爱久久网| 日本午夜视频| 天堂在线观看av| 欧美大胆的人体xxxx| 日本一区高清在线视频| 一区二区三区日韩欧美精品| 九九这里只精品视在线99| 欧美xxxxbbbb在线播放| 午夜激情一区| 久久免费视频网| 国产日韩一区二区三区在线| 91久久精品一区二区三| www.日本久久久久com.| 国产乱码精品一区二区三区不卡| 中文字幕一区二区久久人妻| 高清电影在线观看免费| 欧美疯狂爱爱xxxxbbbb| 啪啪av大全导航福利综合导航| 亚洲一区二区三区香蕉| 18黄暴禁片在线观看| 国产亚洲精品美女久久久| 欧美在线视频播放| 亚洲第一主播视频| 国产淫片在线观看| 亚洲美女网站18| 久久综合色播五月| 中文字幕亚洲欧洲| 一级片视频免费观看| 精品一区二区三区日本| 91蜜桃臀久久一区二区| 国产91免费视频| 日本乱码一区二区三区不卡| 青青久精品观看视频最新| 成人毛片免费在线观看| 亚洲av综合色区无码一区爱av| 成人夜色视频网站在线观看| 国产成人精品网| 手机在线观看国产精品| 亚洲不卡视频在线观看| 免费免费啪视频在线观播放| 日韩在线亚洲| 色综合av在线| 久久久不卡影院| 特级特黄刘亦菲aaa级| 国产一区二区三区在线观看精品| 综合网在线视频| 爱情电影网av一区二区| 国产精品沙发午睡系列990531| 久久高清内射无套| 免费观看av网站| 国产伦精品一区二区三区妓女| 国产精品自拍电影| 国产精品爽爽久久| 成人黄色大片在线免费观看| 亚洲精品mp4| 亚洲aa在线| 亚洲女优在线| www.麻豆av| 在线观看免费av网址| 日日噜噜噜夜夜爽亚洲精品| 奇米影视一区二区三区| 亚洲理论在线a中文字幕| 欧美日韩国产在线播放网站| 国产精品久久777777毛茸茸| 毛片av一区二区三区| 91精品国产高清91久久久久久| 国产在线观看99| 国产精品一区二区x88av| 久久久久久久久影院| 国产精品一区二区久久精品爱涩| 精品国产污污免费网站入口| 精品国产3级a|