Android之Fragment实现界面切换学习笔记

Android之Fragment实现界面切换学习笔记

  今天来实现一个简单的界面切换功能,关于页面的切换相信大家都非常熟悉,比如微信、QQ、支付宝等这些常用软件都会有界面切换功能,根据软件的要求不同,我们所设计的页面切换个数也会不同,今天我就写一个四个基本页面切换的小Demo,具体的代码功能都会在注释上写上。
  
  PS:如果想和是我一样的效果,记得先把系统默认的ActionBar去掉,在头部添加我们自定义的top_bar,我们只需要在AndroidManifest.xml中修改一下android:theme="@style/AppTheme"为以下代码
 android:theme="@style/Theme.AppCompat.Light.NoActionBar"
  
  
  下面先看看界面效果吧:

这里写图片描述

BaseFragment.java

/**
 * 公用的界面,考虑到通用性,就先写一个简单的BaseFragment吧
 * 所有子类界面只需要设置简单的界面内容即可
 */
public abstract class BaseFragment extends Fragment {
   

    //公用内容设置
    private TextView mBaseTvTitle;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view =  inflater.inflate(R.layout.fragment_base, container, false);
        mBaseTvTitle = ((TextView) view.findViewById(R.id.BaseTvTitle));
        setTitle(mBaseTvTitle);
        return view;
    }

    /**
     * 让子类去实现对应的内容
     * @param tvTitle
     */
    protected abstract void setTitle(TextView tvTitle);
}

FLFragment .java

/**
 * 分类Fragment
 */
public class FLFragment extends BaseFragment {
   
    /**
     * 设置对应的内容即可
     * @param tvTitle
     */
    @Override
    protected void setTitle(TextView tvTitle) {
        tvTitle.setText("分类界面");
        tvTitle.setTextSize(30);
        tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
    }
}

RMFragment .java

/**
 * 热门Fragment
 */
public class RMFragment extends BaseFragment {
   

    @Override
    protected void setTitle(TextView tvTitle) {
        tvTitle.setText("热门界面");
        tvTitle.setTextSize(30);
        tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
    }

}

Fragment.java

/**
 *  指南Fragment
 */
public class ZNFragment extends BaseFragment {
   


    @Override
    protected void setTitle(TextView tvTitle) {
        tvTitle.setText("指南界面");
        tvTitle.setTextSize(30);
        tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
    }

}

WDFragment .java

/**
 * 我的Fragment
 */
public class WDFragment extends BaseFragment {
   


    @Override
    protected void setTitle(TextView tvTitle) {
        tvTitle.setText("我的界面");
        tvTitle.setTextSize(30);
        tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
    }

}

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
   

    //分类页面常量
    private final int FL = 1;
    //指南页面常量
    private final int ZN = 2;
    //热门页面常量
    private final int RM = 3;
    //我的页面常量
    private final int WD = 4;

    //指南页面布局控件
    private LinearLayout mLinZN;
    //分类页面布局控件
    private LinearLayout mLinFL;
    //热门页面布局控件
    private LinearLayout mLinRM;
    
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值