Android Studio Bottom Navigation模版配合Fragment

  1. 首先需要创建 Bottom Navigation模版,创建完成后自动生成3个菜单,如图下
    在这里插入图片描述
  2. 可以在app->res->menu->navigation.xml文件下添加或删除菜单,若添加超过5个好像会出现问题,每一个item对应一个菜单在这里插入图片描述
  3. 更改菜单的下标文字需要在res->values->string.xml文件下更改或添加title,然后再对navigation.xml的title引用进行更改即可
  4. 在MainActivity中会自动生成图下代码在这里插入图片描述
  5. 接下来是完成Fragment,有多少个界面就创建多少个xml布局文件和java class,TabFragmentPagerAdapter编写控制器,如图下在这里插入图片描述
  6. 这是每个界面的class文件和xml布局文件,其他4个都一样,就不都贴出来了在这里插入图片描述在这里插入图片描述
package com.example.administrator.mjproject;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Scane01 extends Fragment{
    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,  Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.scane01, null);
        return view;
    }
}

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    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:gravity="center"
        android:text="菜单一"
        android:textSize="30sp" />
 
</android.support.constraint.ConstraintLayout>
  1. 添加控制器代码 TabFragmentPagerAdapter
package com.example.administrator.mjproject;

import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class TabFragmentPagerAdapter extends FragmentPagerAdapter{

   private FragmentManager mfragmentManager;
   private List<Fragment> mlist;

   public TabFragmentPagerAdapter(FragmentManager fm, List<Fragment> list) {
       super(fm);
       this.mlist = list;
   }

   @Override
   public Fragment getItem(int arg0) {
       return mlist.get(arg0);//显示第几个页面
   }

   @Override
   public int getCount() {
       return mlist.size();//有几个页面
   }

}

  1. 最后在MainActivity中加入如下代码
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
private ViewPager myViewPager;
private List<Fragment> list;
private TabFragmentPagerAdapter adapter;


private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.package01:
                    myViewPager.setCurrentItem(0);
                    return true;
                case R.id.package02:
                    myViewPager.setCurrentItem(1);
                    return true;
                case R.id.package03:
                    myViewPager.setCurrentItem(2);
                    return true;
                case R.id.package04:
                    myViewPager.setCurrentItem(3);
                    return true;
            }
            return false;
        }
    };


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

        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
        myViewPager = (ViewPager) findViewById(R.id.myViewPager);
        InitView();
        
		}


private void InitView() {
        //把Fragment添加到List集合里面
        list = new ArrayList<>();
        list.add(new Scane01());
        list.add(new Scane02());
        list.add(new Scane03());
        list.add(new Scane04());
        adapter = new TabFragmentPagerAdapter(getSupportFragmentManager(), list);
        myViewPager.setAdapter(adapter);
        myViewPager.setCurrentItem(3);  //初始化显示第一个页面
    }




  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值