BottomNavigationBar底部导航栏简单使用

1.今天看了别人的文章,以前从来没用过的控件,感觉还不错,所以自己想学习下如何使用.

2.这里简单介绍ViewPger Fragment BottomNavigationBar的使用

Fragment:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;


public class MyFragment extends Fragment {
    String name = "";

    public MyFragment() {
        super();
    }

    public MyFragment setName(String name){
        this.name = name;
        return this;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        LayoutInflater i = LayoutInflater.from(getActivity());
        View f = i.inflate(R.layout.ff, null);
        final TextView tw = (TextView) f.findViewById(R.id.text1);
        Button dianjia = (Button) f.findViewById(R.id.button1);
        dianjia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tw.setText("235253325235");
            }
        });

        tw.setText(name);
        return f;

    }

}

ViewPager adapter:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

import java.util.List;


public class MyAdapter extends FragmentStatePagerAdapter {
    List<Fragment> lists;

    public MyAdapter(FragmentManager fm, List<Fragment> lists) {
        super(fm);
        this.lists = lists;
    }
    @Override
    public int getCount() {
        return lists.size();
    }


    @Override
    public Fragment getItem(int position) {
        return lists.get(position);
    }


}

layout:

<?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"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">

    </android.support.v4.view.ViewPager>

    <com.ashokvarma.bottomnavigation.BottomNavigationBar
        android:id="@+id/bottombar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </com.ashokvarma.bottomnavigation.BottomNavigationBar>


</LinearLayout>

activity:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;
import com.ashokvarma.bottomnavigation.ShapeBadgeItem;
import com.ashokvarma.bottomnavigation.TextBadgeItem;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener {

    private TextBadgeItem mTextBadgeItem;
    private ShapeBadgeItem mShapeBadgeItem;
    int i = 3;
    ViewPager pager;
    List<Fragment> lists;
    BottomNavigationBar bar;

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

        mTextBadgeItem = new TextBadgeItem()
                .setBorderWidth(4)
                .setBackgroundColorResource(R.color.colorAccent)
                .setAnimationDuration(200)
                .setText("3")
                .setHideOnSelect(false);

        mShapeBadgeItem = new ShapeBadgeItem()
                .setShapeColorResource(R.color.colorPrimary)
                .setGravity(Gravity.TOP | Gravity.END)
                .setHideOnSelect(false);

        //初始化viewpager
        lists = new ArrayList<>();
        lists.add(new MyFragment().setName("首页"));
        lists.add(new MyFragment().setName("音乐"));
        lists.add(new MyFragment().setName("电影"));
        lists.add(new MyFragment().setName("游戏"));
        pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new MyAdapter(getSupportFragmentManager() , lists));
        pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                bar.selectTab(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

        //初始化bottomnavigationbar
        bar = (BottomNavigationBar) findViewById(R.id.bottombar);
        bar.setTabSelectedListener(this);
        bar.setMode(BottomNavigationBar.MODE_SHIFTING) //MODE_SHIFTING MODE_FIXED
                .setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
        bar.addItem(new BottomNavigationItem(R.drawable.page1one , "首页").setBadgeItem(mTextBadgeItem))
                .addItem(new BottomNavigationItem(R.drawable.page2one , "音乐").setBadgeItem(mShapeBadgeItem))
                .addItem(new BottomNavigationItem(R.drawable.page4one , "电影"))
                .addItem(new BottomNavigationItem(R.drawable.page5one , "游戏"))
                .setActiveColor(R.color.color1)
                .setInActiveColor(R.color.color2)
                .setBarBackgroundColor(R.color.color3)
                .setFirstSelectedPosition(0)
                .initialise();

    }

    @Override
    public void onTabSelected(int position) {
        mTextBadgeItem.setText("" + i++); //改变右上角消息提示数目
        pager.setCurrentItem(position);
    }

    @Override
    public void onTabUnselected(int position) {

    }

    @Override
    public void onTabReselected(int position) {

    }


}

效果如下:


若是bar.setMode();

MODE_FIXED

效果如下:



3.BottomNavigationBar还有一种用法是什么去了,我一下忘记了,之后碰到再补充


猜你喜欢

转载自blog.csdn.net/qq_38261174/article/details/80188476
今日推荐