原文地址声明:http://blog.csdn.net/qq_23179075/article/details/64905520

Android 底部导航 BottomNavigationView(非官方)


第三方库地址:https://github.com/armcha/LuseenBottomNavigation

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bottomnavigationview.MainActivity">    <android.support.v4.view.ViewPager        android:id="@+id/pager"        android:layout_above="@+id/bottomNavigation"        android:layout_width="match_parent"        android:layout_height="match_parent"        />    <com.luseen.luseenbottomnavigation.BottomNavigation.BottomNavigationView        android:id="@+id/bottomNavigation"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        app:bnv_colored_background="false"        app:bnv_with_text="true"        app:bnv_shadow="true"        app:bnv_tablet="false"        app:bnv_viewpager_slide="true"        app:bnv_active_color="@color/colorPrimary"        app:bnv_active_text_size="@dimen/bottom_navigation_text_size_active"        app:bnv_inactive_text_size="@dimen/bottom_navigation_text_size_inactive"        />RelativeLayout>

fragment_main.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <ImageView        android:id="@+id/iv_meinv"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:scaleType="centerCrop"/>RelativeLayout>

MainActivity.java:

public class MainActivity extends AppCompatActivity {    @BindView(R.id.pager)    ViewPager pager;    @BindView(R.id.bottomNavigation)    BottomNavigationView bottomNavigation;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /**         * 让状态了成半透明状态         */        this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            Window window = this.getWindow();            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);            window.setStatusBarColor(Color.TRANSPARENT);//设置状态栏颜色透明        }        setContentView(R.layout.activity_main);        ButterKnife.bind(this);        initViews();        initListener();    }    private void initListener() {        //pager切换监听        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                bottomNavigation.selectTab(position);            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        //导航选择监听        bottomNavigation.setOnBottomNavigationItemClickListener(new OnBottomNavigationItemClickListener() {            @Override            public void onNavigationItemClick(int index) {                pager.setCurrentItem(index);            }        });    }    private void initViews() {        BottomNavigationItem bottomNavigationItem1 = new BottomNavigationItem                ("主页", ContextCompat.getColor(this, R.color.color02), R.drawable.ic_home);        BottomNavigationItem bottomNavigationItem2 = new BottomNavigationItem                ("关注", ContextCompat.getColor(this, R.color.color03), R.drawable.ic_guanzhu);        BottomNavigationItem bottomNavigationItem3 = new BottomNavigationItem                ("消息", ContextCompat.getColor(this, R.color.color09), R.drawable.ic_msg);        BottomNavigationItem bottomNavigationItem4 = new BottomNavigationItem                ("我的", ContextCompat.getColor(this, R.color.color05), R.drawable.ic_my);        bottomNavigation.addTab(bottomNavigationItem1);        bottomNavigation.addTab(bottomNavigationItem2);        bottomNavigation.addTab(bottomNavigationItem3);        bottomNavigation.addTab(bottomNavigationItem4);        bottomNavigation.willNotRecreate(true);        bottomNavigation.setOnBottomNavigationItemClickListener(new OnBottomNavigationItemClickListener() {            @Override            public void onNavigationItemClick(int index) {                System.out.println("Item " + index + " clicked");            }        });        pager.setAdapter(new BaseFragmentAdapter(getSupportFragmentManager()));    }}

BaseFragment.java

public class BaseFragment extends Fragment {    public static BaseFragment newInstance(int s) {        BaseFragment fragment = new BaseFragment();        Bundle bundle = new Bundle();        bundle.putInt("s", s);        fragment.setArguments(bundle);        return fragment;    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.main_fragment,container,false);        ImageView imageView = (ImageView) view.findViewById(R.id.iv_meinv);        imageView.setImageResource(getArguments().getInt("s"));        return view;    }}

BaseFragmentAdapter.java

public class BaseFragmentAdapter extends FragmentPagerAdapter {    private List<String> fragments;    private int [] Imgs= {        R.mipmap.mn1,        R.mipmap.mn2,        R.mipmap.mn3,        R.mipmap.mn4,    };    public BaseFragmentAdapter(FragmentManager fm) {        super(fm);        this.fragments= new ArrayList<>();        fragments.add("首页");        fragments.add("关注");        fragments.add("消息");        fragments.add("我的");    }    @Override    public Fragment getItem(int position) {        return BaseFragment.newInstance(Imgs[position]);    }    @Override    public int getCount() {        return fragments.size();    }    @Override    public CharSequence getPageTitle(int position) {        return fragments.get(position);    }}

更多相关文章

  1. android OS Service
  2. Android下修改SeekBar样式
  3. android 把图片状态由彩色变成灰色
  4. android OS Service
  5. 捕获Android文本输入框的软键盘完成(Done)按键消息
  6. android canvas中的save()和restore()的作用及效果
  7. Android中内容观察者的使用---- ContentObserver类详解
  8. Android(安卓)Studio实现Activity生命周期的7个方法Log打印日志
  9. android 使用广播监听网络状态

随机推荐

  1. Android(安卓)& 百度地图(1)显示地图
  2. 我是如何自学 Android(安卓)的?
  3. Android(安卓)进阶 APP优化 包体积优化
  4. 【译】利用多线程提高程序性能(for Androi
  5. 【麦子学院】攻克安全漏洞,协助Android前
  6. 网易、华为、携程、美图Android笔试
  7. 认识AndEngine选自Android(安卓)2D游戏引
  8. 仿小米和iphone日历效果,基于Android(安卓
  9. 关于android中多线程相关遇到的问题总结
  10. android设备分辨率获取的一种新方法