Android之Fragment实战

本文分享了在Android项目中使用Fragment的心得体会,推荐启舰的Fragment系列教程作为学习资源。介绍了Fragment适用于引导页和Tab+ViewPager的场景,并探讨了一个功能型引导页的实现,强调理解Fragment的生命周期以正确处理方法调用。在实现过程中,通过控制Fragment的出栈和入栈实现页面跳转,同时处理返回键行为以符合用户预期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推荐学习启舰的系列Fragment教程,堪称经典。
Fragment详解之一——概述
Fragment详解之二——基本使用方法
Fragment详解之三——管理Fragment(1)
Fragment详解之四——管理Fragment(2)
Fragment详解之五——Fragment间参数传递
Fragment详解之六——如何监听fragment中的回退事件与怎样保存fragment状态


好了,下面是我在项目中使用的心得,不定时会添加使用的心得。

哪些场景容易使用到Fragment呢,在我想法里,引导页果断是最适合ViewPager+Fragment使用的地方。一个Activity就可以管理好几个Fragment来实现引导页,还带滑动效果,完美。还有现在用得比较多的地方就是整个项目就是用tab+ViewPager+Fragment来展现的,会使整个页面流畅顺滑,德芙巧克力么么哒。

今天项目里让做一个带功能的引导页,也就是不能滑动,需要点击上一步下一步来控制页面的跳转。其实我的内心是想使用Activity来着,果断还是觉得太蠢了,一个功能性的引导页,也就进程序使用一次,难道我要写4-5个Activity来实现?所以果断还是使用Fragment来实现。先来一个Fragment的生命周期,了解生命周期才能知道方法放在哪儿更合适。

Fragment的生命周期

//初始化
@Override
    public void initView() {
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.add(R.id.fragment_container, ActivationFragmentFactory.getFragment(FRAGMENT_LANGUAGE));
        index = FRAGMENT_LANGUAGE;
        transaction.commit();
    }

//入栈fragment
    private int addFragment(BaseFragment fragment, String stackName){
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(R.id.fragment_container,fragment,stackName);
        transaction.addToBackStack(stackName);
        return transaction.commit();
    }

    //出栈fragment
    private void popBackStack(){
        FragmentManager manager = getSupportFragmentManager();
        manager.popBackStack();
    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            if (index != FRAGMENT_LANGUAGE){
                backFunction();
                return false;
            }
        }
        return super.onKeyDown(keyCode, event);

    }

在上一步下一步的方法主要就是Fragment出栈和入栈的方法,直接调用即可。然后需要注意需要重新返回键按钮,因为我们是一个Activity,用户按了返回键的意思是到上一个页面,而不是直接退出了程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值