zoukankan      html  css  js  c++  java
  • Android模拟微信主页面的Demo

    效果图如下:

    项目结构图如下:

    ContanctFragment:

    package com.demo.moniwexin;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    
    public class ContanctFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
    
            View view = inflater.inflate(R.layout.fragment_contact, null);
            //测试按钮如何点击
            Button wxBtn = view.findViewById(R.id.btn_test);
            wxBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    System.out.println("点击了通讯录模块");
                }
            });
    
    
            return view;
    
        }
    }
    
    

    DiscoverFragment:

    package com.demo.moniwexin;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    
    public class DiscoverFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
    
            View view = inflater.inflate(R.layout.fragment_discover, null);
            //测试按钮如何点击
            Button wxBtn = view.findViewById(R.id.btn_test);
            wxBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    System.out.println("点击了发现模块");
                }
            });
    
            return view;
        }
    }
    
    

    MainActivity:

    package com.demo.moniwexin;
    
    import android.app.FragmentManager;
    import android.app.FragmentTransaction;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            findViewById(R.id.btn_wx).setOnClickListener(this);
            findViewById(R.id.btn_contact).setOnClickListener(this);
            findViewById(R.id.btn_discover).setOnClickListener(this);
            findViewById(R.id.btn_me).setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
    
    
            //获取管理者
            FragmentManager fragmentManager =getFragmentManager();
    
            FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
    
    
            switch (v.getId()){
                case R.id.btn_wx :
                    beginTransaction.replace(R.id.ll_l,new WxFragment());
                    break;
                case R.id.btn_contact:
                    beginTransaction.replace(R.id.ll_l,new ContanctFragment());
                    break;
                case R.id.btn_discover:
                    beginTransaction.replace(R.id.ll_l,new DiscoverFragment());
                    break;
                case R.id.btn_me:
                    beginTransaction.replace(R.id.ll_l,new MeFragment());
                    break;
    
                    default:
    
                        break;
    
            }
    
            beginTransaction.commit();
        }
    }
    
    

    MeFragment:

    package com.demo.moniwexin;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    
    public class MeFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
    
            View view = inflater.inflate(R.layout.fragment_me, null);
            //测试按钮如何点击
            Button wxBtn = view.findViewById(R.id.btn_test);
            wxBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    System.out.println("点击了我模块");
                }
            });
    
            return view;
        }
    }
    
    

    WxFragment:

    package com.demo.moniwexin;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.text.Layout;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    
    public class WxFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
    
            View view = inflater.inflate(R.layout.fragment_wx, null);
            //测试按钮如何点击
            Button wxBtn = view.findViewById(R.id.btn_test);
            wxBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    System.out.println("点击了微信模块");
    
    
    
                }
            });
    
    
            return view;
    
        }
    }
    
    

    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=".MainActivity">
    
        <LinearLayout
            android:id="@+id/ll_l"
            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:layout_alignParentBottom="true"
            android:orientation="horizontal">
    
            <Button
                android:id="@+id/btn_wx"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="微信" />
    
            <Button
                android:id="@+id/btn_contact"
    
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="通讯录" />
    
            <Button
                android:id="@+id/btn_discover"
    
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="发现" />
    
            <Button
                android:id="@+id/btn_me"
    
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="我" />
    
    
        </LinearLayout>
    
    </RelativeLayout>
    

    fragment_contact.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">
    
    
        <TextView
            android:text="我是通讯录模块的内容"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/btn_test"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="测试"
            />
    
    </LinearLayout>
    

    fragment_discover.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">
    
    
        <TextView
            android:text="我是发现模块的内容"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/btn_test"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="测试"
            />
    
    </LinearLayout>
    

    fragment_me.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">
    
    
        <TextView
            android:text="我是我的模块内容"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/btn_test"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="测试"
            />
    
    </LinearLayout>
    

    fragment_wx.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">
    
    
        <TextView
            android:text="我是微信模块的内容"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/btn_test"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="测试"
            />
    
    </LinearLayout>
    
  • 相关阅读:
    C#与数据库访问技术总结(十四)之DataAdapter对象
    《运维三十六计》:运维生存宝典
    企业运维几百个重点面试题汇总(老男孩)
    5、KVM虚拟化典型案例:生产环境问题案例与分析
    Linux运维必会的实战编程笔试题(19题)
    面试中常见的 MySQL 考察难点和热点
    Linux系统运维常见面试简答题(36题)
    一键备份脚本 backup.sh
    Linux常用的200个命令总结分类
    2、KVM虚拟化CPU、内存、网络、磁盘技术及性能调优方法
  • 原文地址:https://www.cnblogs.com/charlypage/p/10354055.html
Copyright © 2011-2022 走看看