Advertisement

Android底部导航栏

阅读量:

使用Android Studio制作像微信一样的底部导航栏

第一:显示效果及源码下载地址
在这里插入图片描述
下图就是自主制作的底部导航栏:
在这里插入图片描述
实现上述效果的源代码下载地址:github.com

第二:简单讲述一下操作流程
a、新建一个项目
此时只有一个MainActivity和activity_main.xml文件,这时最好新建两个包activity和tab包,这样的好处是条理清晰。
在这里插入图片描述
b、把下载源码安装此路劲打开:app\src\main\java\com\application\tab
把tab文件夹拷贝到你新建的项目下:
在这里插入图片描述完成上述步骤后,执行下面操作:把源码目录app\src\main\res\layout下的fragment1.xml、fragment2.xml、fragment3.xml拷贝到你项目的layout文件夹下或自己新建这样的xml文件。
在这里插入图片描述
第三:配置activity_main.xml文件,代码如下:

复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout 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=".activity.MainActivity">
    
    
    <FrameLayout
        android:id="@+id/fl_container"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
    </FrameLayout>
    <com.example.bottombar.BottomBar
        android:id="@+id/bottom_bar"
        android:layout_width="match_parent"
        android:layout_height="46dp"
        android:layout_gravity="bottom"
        android:background="#FFFFFF"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
    
    
    
    </android.support.constraint.ConstraintLayout>
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/gzNU9BvJliPotMmGWuhcp2XkyFqf.png)

第四:配置MainActivity类

复制代码
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomBar bottomBar = findViewById(R.id.bottom_bar);
        bottomBar.setContainer(R.id.fl_container)
                .setTitleBeforeAndAfterColor("#999999", "#ff5d5e")
                .addItem(com.example.bottombar.fragment.Fragment1.class,
                        "首页",
                        R.mipmap.ic_launcher,
                        R.mipmap.ic_launcher)
                .addItem(com.example.bottombar.fragment.Fragment2.class,
                        "订单",
                        R.mipmap.ic_launcher,
                        R.mipmap.ic_launcher)
                .addItem(Fragment3.class,
                        "我的",
                        R.mipmap.ic_launcher,
                        R.mipmap.ic_launcher)
                .build();
    }
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/KHTRecCykMP1WVGX98ldAsq2oUiL.png)

完成上述步骤后,下载apk到手机后,效果如下图:
在这里插入图片描述
第五:继承Fragment类与继承AppCompatActivity对控件的关联等一些操作有所不同
比如说:我在首页这里点击一个按钮跳转到另一个activity,此时底部导航栏应该时没有了;也就是说我要在fragment1.xml文件布局设置一个Button并设置监听事件。

1、fragment1.xml文件布局设置一个Button

复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
    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">
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="188dp"
        android:layout_marginTop="216dp"
        android:text="1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="144dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
    
    
    </android.support.constraint.ConstraintLayout>
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/Q1AyrN03UYXTaen6jEwq8DSGdWMZ.png)

2、在Fragment1类里面设置监听

复制代码
     @Override
    public void onActivityCreated(Bundle savedInstanceState){
        super.onActivityCreated(savedInstanceState);
        Button button = (Button) getActivity().findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_LONG).show();
                Intent intent=new Intent(getActivity(), Main2Activity.class);
                startActivity(intent);
            }
        });
    }
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-12/qehaEVNynxp8mXtvMi2Pb1RIwTJ7.png)

仔细看一下,这里与继承AppCompatActivity的控件关联有所不同:

复制代码
    Button button = (Button) getActivity().findViewById(R.id.button);
    
    

跳转到另一个activity也有所不同:

复制代码
     Intent intent=new Intent(getActivity(), Main2Activity.class);
    
    

在这里插入图片描述到此底部导航栏设置完毕,详细底部导航栏依赖BottomBar.java类实现就不详细说了。
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~