代码于2020年3月16日上传至码云仓库(https://gitee.com/passenger98/Weixin),
文档是补写的🤗🤗🤗
项目要求
- 使用fragment实现模仿微信式点击底部Button进行Tab切换效果
- 点击Button时有相应的按钮高亮处理
实现思路
- 为每个activity设计相应的fragment界面
- 实现逻辑代码,点击按钮呈现相应界面
演示效果(视频)
Android模仿微信tab切换(blibli)
主要界面
项目结构
技术介绍
Fragment可视为Activity的一部分,所以Fragment的生命周期会受Activity的影响。Fragment往往嵌入到Activity中,然后执行Fragment事务进行对Fragment的操作。
Fragment是一个事务栈,可以将多个操作放在一起执行,再进行提交。
在使用Fragment之前,需要先熟悉几个类,包括FragmentActivity、FragmentManager、FragmentTranscation。
FragmentActivity:内部可以容纳多个Fragment
FragmentManager:Fragment的管理
FragmentTranscation:执行Fragment的增加(add)、替换(replace)、解除(detach)、显示(show)和隐藏(hide)
(注:部分Fragment方法与AndroidX不兼容,需使用为了保证兼容性,建议使用android-support-v4包中的Fragment类)
主要代码呈现
MainActivity -监听底部Button点击,转而进行相应隐藏和选中处理
package com.example.weixin;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class MainActivity extends FragmentActivity implements OnClickListener
{
private LinearLayout mTabWeixin;
private LinearLayout mTabFrd;
private LinearLayout mTabAddress;
private LinearLayout mTabSettings;
private ImageButton mImgWeixin;
private ImageButton mImgFrd;
private ImageButton mImgAddress;
private ImageButton mImgSettings;
private Fragment mTab01;
private Fragment mTab02;
private Fragment mTab03;
private Fragment mTab04;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState