• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

Android

Android底部导航BottomNavigationBar

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0824/614.html

名目地点:
 
 
1、样式
底部导航的action通常是3-5个,小于3个保举应用tab,大于三个常州手游开发保举应用navigation drawer
在切换的时候,应用cross-fade动画,避免视图间的横向挪动
2、Fixed、Shifting
Bottom navigation,有两种Mode:分别是Fixed、Shifting
 
Fixed:
 
Fixed bottom navigation bar
 
Shifting:
 
Shifting bottom navigation bar
 
3、代码完成
1.依附:
 
 compile 'com.ashokvarma.android:bottom-navigation-bar:1.4.1' 
 
2.结构文件:
 
复制代码
<com.ashokvarma.bottomnavigation.BottomNavigationBar        android:id="@+id/bottom_navigation_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"/>
        <!--app:bnbAutoHideEnabled="false"/>-->
复制代码
3、Activity中的完成,注意的参数
 
1.配置导航栏模式:setMode()
 
Attribute:  mode_fixed, mode_shifting,mode_default
Method: setMode()  Values:MODE_FIXED, MODE_SHIFTING
 
.setMode(BottomNavigationBar.MODE_FIXED);
2.配置常州游戏开发培训导航栏背景模式:setBackgroundStyle()
 
Attribute: background_style_static, background_style_ripple,background_style_default
 
Method:setBackgroundStyle()Values:BACKGROUND_STYLE_STATIC, BACKGROUND_STYLE_RIPPLE
 
.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE)      
3.配置BottomNavigationItem色彩
 
Attributes: bnbActiveColor, bnbInactiveColor, bnbBackgroundColor Value: Color value or resource 
Methods: setActiveColor, setInActiveColor, setBarBackgroundColor Value: Color value or resource
 
BottomNavigationItem
.setActiveColorResource(R.color.primary)
4.增加标志BadgeItem
 
复制代码
 BadgeItem numberBadgeItem = new BadgeItem()
                .setBorderWidth(4)
                .setBackgroundColorResource(R.color.blue)
                .setText("5")
                .setHideOnSelect(autoHide.isChecked());  // TODO 掌握便签消散或不用失
 
     bottomNavigationBar
                .addItem(new BottomNavigationItem(R.drawable.ic_home_white_24dp, "Home").setActiveColorResource(R.color.orange).setBadgeItem(numberBadgeItem))
 // TODO 配置 BadgeItem 默许隐藏 注意 这句代码在增加 BottomNavigationItem 之后
 numberBadgeItem.hide();  
复制代码
5.配置事务监听器TabChangeListener
 
复制代码
 bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener(){
            @Override            public void onTabSelected(int position) {
            }
            @Override            public void onTabUnselected(int position) {]
            }
            @Override            public void onTabReselected(int position) {
            }
        });
复制手机App外包代码
 
 
 
 
展现
 
MODE_FIXED+BACKGROUND_STYLE_STATIC结果
 
 
 
DE_FIXED+BACKGROUND_STYLE_RIPPLE结果
 
 
 
MODE_SHIFTING+BACKGROUND_STYLE_STATIC结果
 
 
 
 
 
MODE_SHIFTING+BACKGROUND_STYLE_RIPPLE结果
 
 
 
 
 
案例的完成
JAVA
 
复制代码
public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {
 
 
    @BindView(R.id.bottom_navigation_bar)
    BottomNavigationBar mBottomNavigationBar;
    @BindView(R.id.fragment_container)
    FrameLayout mFrameLayout;    private BookFragment mBookFragment;    private LikeFragment mLikeFragment;    private UserFragment mUserFragment;
 
    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        InitNavigationBar();
 
    }    private void InitNavigationBar() {
        mBottomNavigationBar.setTabSelectedListener(this);
        mBottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
        mBottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
        mBottomNavigationBar
                .addItem(new BottomNavigationItem(R.drawable.literature_100, "图书").setActiveColorResource(R.color.orange))
                .addItem(new BottomNavigationItem(R.drawable.like_100, "珍藏").setActiveColorResource(R.color.teal))
                .addItem(new BottomNavigationItem(R.drawable.user_100, "配置").setActiveColorResource(R.color.blue))
                .setFirstSelectedPosition(0)
                .initialise();
    }    /**
     * 配置App开发培训默许的     */
    private void setDefaultFragment() {
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();
        mBookFragment = BookFragment.newInstance();
        transaction.replace(R.id.fragment_container, mBookFragment);
        transaction.commit();
    }
 
    @Override    public void onTabSelected(int position) {
        Log.d("onTabSelected", "onTabSelected: " + position);
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();        switch (position) {            case 0:                if (mBookFragment == null) {
                    mBookFragment = BookFragment.newInstance();
                }
                transaction.replace(R.id.fragment_container, mBookFragment);                break;            case 1:                if (mLikeFragment == null) {
                    mLikeFragment = LikeFragment.newInstance();
                }
                transaction.replace(R.id.fragment_container, mLikeFragment);                break;            case 2:                if (mUserFragment == null) {
                    mUserFragment = UserFragment.newInstance();
                }
                transaction.replace(R.id.fragment_container, mUserFragment);                break;            default:                break;
        }        // 事务提交        transaction.commit();
    }
 
    @Override    public void onTabUnselected(int position) {
        Log.d("onTabUnselected", "onTabUnselected: " + position);
    }
 
    @Override    public void onTabReselected(int position) {
        Log.d("onTabReselected", "onTabReselected: " + position);
    }
}
复制常州网站开发培训代码
XML
 
复制代码
<?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="com.ryan.simplereading.MainActivity">
 
    <FrameLayout        android:id="@+id/fragment_container"
        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>
复制代码
 

上篇:上一篇:Android多线程的四种方法
下篇:下一篇:Spinner初始化监听 onItemSelected实行两次