Android Fragment实现微信底部导航

Posted 雨后观山色

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Fragment实现微信底部导航相关的知识,希望对你有一定的参考价值。

1.XML布局

(1)主界面

<?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=".MainActivity">


    <LinearLayout
        android:id="@+id/ll_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true">

        <Button
            android:id="@+id/btmain_weixin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="微信" />

        <Button
            android:id="@+id/btmain_tongxunlu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="通讯录" />

        <Button
            android:id="@+id/btmain_discover"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="发现" />

        <Button
            android:id="@+id/btmain_wo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="我" />
    </LinearLayout>

</RelativeLayout>

(2)Fragment对应的xml

<?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">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是weixin模块" />

    <Button
        android:id="@+id/bt_weixin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试weixin" />

</LinearLayout>

2.java后台代码

(1)MainActivity.java

package com.example.administrator.test57wechat;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btmain_weixin=findViewById(R.id.btmain_weixin);
        Button btmain_tongxunlu=findViewById(R.id.btmain_tongxunlu);
        Button btmain_wo=findViewById(R.id.btmain_wo);
        Button btmain_discover=findViewById(R.id.btmain_discover);
        btmain_weixin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //1.获取Fragment的管理者
                FragmentManager fragmentManager=getSupportFragmentManager();
                //2.开启事务
                FragmentTransaction beginTransaction=fragmentManager.beginTransaction();
                //3.替换Fragment
                beginTransaction.replace(R.id.ll_layout,new WeixinFragment());
                beginTransaction.commit();
            }
        });

        btmain_tongxunlu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //1.获取Fragment的管理者
                FragmentManager fragmentManager=getSupportFragmentManager();
                //2.开启事务
                FragmentTransaction beginTransaction=fragmentManager.beginTransaction();
                //3.替换Fragment
                beginTransaction.replace(R.id.ll_layout,new TongxunluFragment());
                beginTransaction.commit();
            }
        });

        btmain_wo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //1.获取Fragment的管理者
                FragmentManager fragmentManager=getSupportFragmentManager();
                //2.开启事务
                FragmentTransaction beginTransaction=fragmentManager.beginTransaction();
                //3.替换Fragment
                beginTransaction.replace(R.id.ll_layout,new WoFragment());
                beginTransaction.commit();
            }
        });

        btmain_discover.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //1.获取Fragment的管理者
                FragmentManager fragmentManager=getSupportFragmentManager();
                //2.开启事务
                FragmentTransaction beginTransaction=fragmentManager.beginTransaction();
                //3.替换Fragment
                beginTransaction.replace(R.id.ll_layout,new DiscoverFragment());
                beginTransaction.commit();
            }
        });
    }
}

(2)Fragment

package com.example.administrator.test57wechat;


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

public class WeixinFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_weixin,null);

        //测试fragment中的组件是否可以被点击
        Button bt_weixin=view.findViewById(R.id.bt_weixin);
        bt_weixin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("hello weixin");
            }
        });
        return view;
    }
}

3.效果图

对应的工程名:test57

以上是关于Android Fragment实现微信底部导航的主要内容,如果未能解决你的问题,请参考以下文章

Android的Kotlin:Fragment+BottomNavigationView实现非滑动页面与底部导航键

Android使用fragment实现底部导航栏切换界面

Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面

Android 最常用的四种底部导航栏实现

Android 中使用RadioGroup+Fragment实现底部导航栏的功能

app的页面的底部导航设计