Android肝帝战纪之基于上篇单Activity+多Fragment框架,开发电商式导航栏,多Fragment切换

电商式导航栏,多Fragment切换


  • 本文默认在已经搭建好的框架上进行开发

    点此链接到上一篇基础框架的搭建

  • 界面构思示意图
    这里写图片描述

  • 设计思路
    在底部的LinearLayout中添加相应的图标,然后设置tag绑定相应的 Fragment数组对应的下标值,再点击切换的时候,根据获取到的tag值,取出数组中对应下标的Fragment,在通过相关方法显示。
    封装目标:只需添加相应的按钮对象和相应的视图即可,然后在Activity中显示即可。


  • 先创建可切换的Fragment的基类BottomItemFragment(实现一个双击退出功能)

// 定义为抽象类即每个itemfragment的基类
public abstract class BottomItemFragment extends MyFragment implements View.OnKeyListener{
   
    // 当前按下返回按钮的时间
    private long mExitTime = 0;
    // 双击返回键之间的延迟
    private static final int EXIT_TIME = 2000;

    @Override
    public void onResume(){
        super.onResume();
        View rootView = getView();
        // 防止双击退出失效
        if (rootView!=null){
            rootView.setFocusableInTouchMode(true);
            rootView.requestFocus();
            rootView.setOnKeyListener(this);
        }
    }

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
            if ((System.currentTimeMillis() - mExitTime) > EXIT_TIME) {
                Toast.makeText(getContext(), "双击退出", Toast.LENGTH_SHORT).show();
                mExitTime = System.currentTimeMillis();
            } else {
                _mActivity.finish();
                if (mExitTime != 0) {
                    mExitTime = 0;
                }
            }
            return true;
        }
    }
}
public final class BottomTabBean {
   
    private final CharSequence ICON;
    private final CharSequence TITLE;

    public BottomTabBean(CharSequence ICON, CharSequence TITLE){
        this.ICON = ICON;
        this.TITLE = TITLE;
    }

    public CharSequence getICON(){
        return ICON;
    }
    public
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值