下部ナビゲーションバー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