FragmentStack页面切换

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-4-29 16:04:03
Tag:FragmentStack 页面 切换

项目介绍:

介绍:一个封装了启动模式的Fragment便捷使用库,方便构建单Activity+多Fragment轻量级框架。
运行效果:
使用说明:一 为什么要写这个库
1.Fragment创建速度完胜Activity,在长期的开发实践中,明显感觉到Fragment响应速度,内存占用等方面拥有巨大的优势,将页面fragment化有助于提升app流畅度;
2.fragment创建和使用相比Activity更加麻烦,其中,回退栈管理,动画,关闭,隐藏等不便于使用,需要进一步封装提升效率;
3.fragment缺少启动模式,使得管理起来很有难度,很多在Activity上很常见的需求在Fragment使用需要更多更复杂的技巧,不利于快速开发;
二 它能为你做什么
1.替代传统的Activity页面,轻量化页面;
2.开启,关闭,动画,回退栈,生命周期回调等操作更加方便,一行代码即可搞定;
3.自带Activity四种启动模式,接管了系统的回退栈,很常见的场景,如 用户中心--->注册用户--->注册成功--->返回原来的用户中心,就可以设置启动模式为singleTask,注册成功后退出当前任务栈,或者设置用户中心singleInstance,直接new创建后再onNewInstance()方法中更新数据即可,框架自动remove上层fragment;
三 配置和开始使用
对于如何导入,也是相当的简单,android studio的用户,直接:
[XML] 查看源文件 复制代码
compile 'com.mrwang.Fragmenttack:stacklibrary:1.0.0'
然后,在你的项目中,MainActivity继承RootActivity
[Java] 查看源文件 复制代码
public class MainActivity extends RootActivity {
 
    @Override
    protected RootFragment getRootFragment() {
        return new HomeFragment();
    }
 
    @Override
    public void onCreateNow(Bundle savedInstanceState) {
        setAnim(R.anim.next_in, R.anim.next_out, R.anim.quit_in, R.anim.quit_out);
    }
}
Fragment继承RootFragment
[Java] 查看源文件 复制代码
public class HomeFragment extends RootFragment{
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
 
    }
}
接下来,可以自由方便的使用Fragment了;
四 API说明
1.打开一个新的Fragment;
常规方式
[Java] 查看源文件 复制代码
open(new Fragment());
带参形式
[Java] 查看源文件 复制代码
open(new Fragment());
在新Fragment中用Bundle bundle = getArguments();获取
带启动模式形式,支持四种启动模式(实际项目中以singleTask最为实用);
[Java] 查看源文件 复制代码
open(new Fragment1(), null, StackManager.STANDARD);
open(new Fragment1(), null, StackManager.SINGLE_TOP);
open(new Fragment1(), null, StackManager.SINGLE_TASK);
open(new Fragment1(), null, StackManager.SINGLE_INSTANCE);
关闭当前的fragment
[Java] 查看源文件 复制代码
close()
关闭指定的Fragment
[Java] 查看源文件 复制代码
close(fragment)
设置页面切换动画
[Java] 查看源文件 复制代码
setAnim(R.anim.next_in, R.anim.next_out, R.anim.quit_in, R.anim.quit_out);

进入下一个页面,两个页面的回调,只需重写
[Java] 查看源文件 复制代码
private void onNowHidden() {
 
}
 
private void onNextShow() {
 
}
Fragment获取依赖的Activity
[Java] 查看源文件 复制代码
RootActivity root = getRoot();
singleTop,fragment被重复创建的回调
[Java] 查看源文件 复制代码
@Override
public void onNewIntent() {
}

若需要监听按键事件,只需设置sKeyCallBack
[Java] 查看源文件 复制代码
setKeyCallBack(new KeyCallBack() {
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            return false;
        }
    });
.



相关源码推荐:

我来说两句
所有评论(10)
apkbusgj 2016-5-1 10:25:53
很给力,安卓巴士有你更精彩!
回复
yx_ctgu1 2016-5-1 18:20:23
淡定,淡定,淡定……
回复
disanzhuhuang 2016-5-3 01:00:48
很给力
回复
jinyunliang 2016-5-4 14:38:34
强烈支持楼主ing……
回复
孙林 2016-5-11 08:19:53
楼主威武啊,安卓巴士有你更给力!
回复
wapbar 2016-6-16 18:10:29
膜拜大神~
回复
heyanjiemao 2016-6-16 18:10:34
学习学习,很有用,感谢~
回复
12下一页
提取码:  下载次数:8 状态:已购或VIP 售价:10(原价:10)金钱 下载权限:初级码农 
1044 0 8
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿
帖子代码编辑/版权问题
QQ:435399051,1294855032
如何获得代码达人称号?
如何成为签约作者?
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )