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) {
}
}