Android BottomNavigationBar底部导航控制器的使用1

PS:底部导航控制器,比较炫酷,可以根据自己的喜好来制作导航点击效果,

bar.setMode(BottomNavigationBar.MODE_SHIFTING);
        bar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
不同的搭配实现不同效果。


1:实现BottomNavigationBar,需要添加依赖

compile 'com.ashokvarma.android:bottom-navigation-bar:1.4.3'

2:写两个Fragment  ,以及fragment.xml   ,这里我写一个fragment,另一个粘贴复制即可

public class Fragment2 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment2,container,false);

        return view;
    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="222222222222222222"/>

</LinearLayout>
2:写MainActivity.java    我先把重要的代码提出来,后面是总代码

加载控件:

 BottomNavigationBar bar= (BottomNavigationBar) findViewById(R.id.id_btm1);
        bar.setMode(BottomNavigationBar.MODE_SHIFTING);//样式,不同搭配效果不同
        bar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
        BadgeItem bi=new BadgeItem().setBorderColor("#ff1111").setText("3");//设置红点提示个数
//加载fragment
        bar.addItem(new BottomNavigationItem(R.mipmap.ic_launcher,"首页").setInActiveColor("#ff1111").setActiveColor("#000000"))
                .addItem(new BottomNavigationItem(R.drawable.banzi,"扳子").setActiveColor("#FF58C7AF").setTextBadgeItem(bi))
                .setFirstSelectedPosition(0)
                .initialise();

        bar.setTabSelectedListener(this);


实现点击效果需要实现接口:

public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener


下面就是fragment的添加和隐藏

public void hideFrag(Fragment f1){
        FragmentTransaction ft=getFragmentManager().beginTransaction();
        if(f1!=null&& f1.isAdded()){//判断,如果不为null,且已经添加过,则hide
            ft.hide(f1);

        }
        ft.commit();
    }

    public void addFrag(Fragment f1) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        if (f1 != null && !f1.isAdded()) {
            ft.add(R.id.id_content_layout, f1);

        }
        ft.commit();
        getFragmentManager().beginTransaction().show(f1).commit();
    }

总代码:

package liuzhitong.cn.bottomnavigatioin1;

import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.ashokvarma.bottomnavigation.BadgeItem;
import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;

import fragpac.Fragment1;
import fragpac.Fragment2;

public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {

    private Fragment1 f1;
    private Fragment2 f2;

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

        addBottomBar();
        init();
    }

    private void init() {
        hideAllFrag();
                if(f1==null){
                    f1 = new Fragment1();
                }
                addFrag(f1);
    }

    private void addBottomBar() {
        BottomNavigationBar bar= (BottomNavigationBar) findViewById(R.id.id_btm1);
        bar.setMode(BottomNavigationBar.MODE_SHIFTING);
        bar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
        BadgeItem bi=new BadgeItem().setBorderColor("#ff1111").setText("3");
        bar.addItem(new BottomNavigationItem(R.mipmap.ic_launcher,"首页").setInActiveColor("#ff1111").setActiveColor("#000000"))
                .addItem(new BottomNavigationItem(R.drawable.banzi,"扳子").setActiveColor("#FF58C7AF").setTextBadgeItem(bi))
                .setFirstSelectedPosition(0)
                .initialise();

        bar.setTabSelectedListener(this);

    }
    public void hideFrag(Fragment f1){
        FragmentTransaction ft=getFragmentManager().beginTransaction();
        if(f1!=null&& f1.isAdded()){
            ft.hide(f1);

        }
        ft.commit();
    }

    public void addFrag(Fragment f1) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        if (f1 != null && !f1.isAdded()) {
            ft.add(R.id.id_content_layout, f1);

        }
        ft.commit();
        getFragmentManager().beginTransaction().show(f1).commit();
    }
    public void hideAllFrag(){
        hideFrag(f1);
        hideFrag(f2);
    }

    @Override
    public void onTabSelected(int position) {
        hideAllFrag();
        switch (position){
            case 0:
                if(f1==null){
                    f1 = new Fragment1();
                }
                addFrag(f1);
                break;
            case 1:
                if (f2 == null) {
                    f2 = new Fragment2();
                }
                addFrag(f2);
                break;
        }
    }

    @Override
    public void onTabUnselected(int position) {

    }

    @Override
    public void onTabReselected(int position) {

    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值