下部ナビゲーションバーBottomNavigationBarとfragmentの使用

18609 ワード


package com.example.ztz.bottomnavigationbar;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.widget.FrameLayout;

import com.ashokvarma.bottomnavigation.BadgeItem;
import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;
import com.example.ztz.bottomnavigationbar.fragment.ClassificationFragment;
import com.example.ztz.bottomnavigationbar.fragment.FindFragment;
import com.example.ztz.bottomnavigationbar.fragment.HomeFragment;
import com.example.ztz.bottomnavigationbar.fragment.MineFragment;
import com.example.ztz.bottomnavigationbar.fragment.ShopCartFragment;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * BottomNavigationBar    (2.0.4)  BadgeItem  ,      
 *
 * BottomNavigationBar      
 */
public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {

    @BindView(R.id.frameLayout)
    FrameLayout frameLayout;
    @BindView(R.id.bottom_navigation_bar)
    BottomNavigationBar bottomNavigationBar;
    private FragmentTransaction transaction;
    private ClassificationFragment classificationFragment;
    private HomeFragment homeFragment;
    private FindFragment findFragment;
    private ShopCartFragment shopCartFragment;
    private MineFragment mineFragment;
    private Fragment mFragment;//     Fragment

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        //     
        BottomNavigationBar();
        //bottomNavigationBar     
        bottomNavigationBar.setTabSelectedListener(this);
        //fragment  
        initFragment();
    }

    private void initFragment() {
        homeFragment = new HomeFragment();
        classificationFragment = new ClassificationFragment();
        findFragment = new FindFragment();
        shopCartFragment = new ShopCartFragment();
        mineFragment = new MineFragment();

        transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.frameLayout, homeFragment)
                   .commit();
        mFragment = homeFragment;
    }

    private void BottomNavigationBar() {
        //       
        BadgeItem badgeItem = new BadgeItem();
        badgeItem.setHideOnSelect(false)
                .setText("10")
                .setBackgroundColorResource(R.color.red)
                .setBorderWidth(0);

        bottomNavigationBar.setActiveColor(R.color.colorAccent)//  Item      
                .setInActiveColor(R.color.colorPrimary)//  Item       
                .setBarBackgroundColor("#FFFFFF");//    
        bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);//     
        //    
        bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
        bottomNavigationBar.addItem(new BottomNavigationItem(R.drawable.shouye,"  ").setBadgeItem(badgeItem))
                .addItem(new BottomNavigationItem(R.drawable.fenlei,"  "))
                .addItem(new BottomNavigationItem(R.drawable.faxian,"  "))
                .addItem(new BottomNavigationItem(R.drawable.gouwuche,"   "))
                .addItem(new BottomNavigationItem(R.drawable.mine,"  "))
                .setFirstSelectedPosition(0)//      
                .initialise();
    }

    @Override
    public void onTabSelected(int position) {
        switch (position){
            case 0:
                switchFragment(homeFragment);
                break;
            case 1:
                switchFragment(classificationFragment);
                break;
            case 2:
                switchFragment(findFragment);
                break;
            case 3:
                switchFragment(shopCartFragment);
                break;
            case 4:
                switchFragment(mineFragment);
                break;
        }
    }
    @Override
    public void onTabUnselected(int position) {}
    @Override
    public void onTabReselected(int position) {}

    private void switchFragment(Fragment fragment) {
        //       Fragment      Fragment
        if(mFragment != fragment) {
            //     Fragment       
            if (!fragment.isAdded()) {
                //    ,      Fragment  ,    Fragment   
                getSupportFragmentManager().beginTransaction().hide(mFragment)
                        .add(R.id.frameLayout,fragment).commit();
            } else {
                //       ,      Fragment  ,    Fragment    
                getSupportFragmentManager().beginTransaction().hide(mFragment).show(fragment).commit();
            }
            mFragment = fragment;
        }
    }
}
    GitHub  Demo