💥一个强大的Fragment框架。
这可能是使用成本最低的Fragment框架。
无需继承!!!无需继承!!!无需继承!!! 重要的话说三遍!!
在使用FragmentRigger
的时候,使用成本只有一行注解!!!
原理: 是把Fragment
/Activity
生命周期相关方法定义为切点,通过ASpectJ绑定并使用代理类进行操作。
Stack manager | Show | Lazy loading | Replace |
---|---|---|---|
- 让Fragment的使用更简单.
- 以最低的成本去使用Fragment.
- 安装
- 开始使用
- Fragment的操纵
- 自定义Fragment tag
- 懒加载
- 转场动画
- onBackPressed拦截
- startFragmentForResult方法
- 滑动退出Activity/Fragment
- 如何在library module中使用
- 超强大Api支持
- 足够多的英文注释
- 严格的异常抛出
- 解决Fragment中常见的异常及Bug
- 事务提交永不丢失
- 扩展原生方法,添加
onBackPressed
等常见的方法支持 - 当前栈成员树状图打印
- Fragment懒加载
- Fragment转场动画
- 自定义Fragment tag
- 为非栈内的Fragment添加onBackPressed支持
- 滑动边缘退出Activity/Fragment
- 配置Fragment启动模式的选项
- Fragment间共享元素转场动画
- 支持DialogFragment
Fragment界面重叠Fragment多级嵌套Fragment栈的管理问题Fragment事务提交失败Activity在非onResume状态下提交事务Fragment事务提交不能立即执行导致两次提交事件冲突内存重启
时的一系列异常屏幕翻转时的数据保存及恢复Can not perform this action after onSaveInstanceState在ViewPager中的懒加载及其他场景下的懒加载不同场景下转场动画不执行问题
本框架提供了强大的Api支持。
和已有的大部分Fragment
框架不同,不需要继承任何父类,只需要添加一行注解即可。
在操纵Fragment
的时候只需要通过代理类来操作,本框架完全采用一种插入式 的方式来降低使用成本。
1、声明为框架的支持类
在需要使用本框架的
Activity/Fragment
上添加注解@Puppet
即可。
//MainActivity.java
@Puppet(containerViewId = R.id.atyContent)//containerViewId是你需要操纵的Fragment在add时候的container view
public class MainActivity extends AppCompatActivity
//TestFragment.java
@Puppet
public class TestFragment extends Fragment
2、使用框架操纵Fragment
添加
@Puppet
注解之后,在使用框架提供的Fragment
操纵的方法的时候通过代理类Rigger
来操纵。
@Puppet(containerViewId = R.id.atyContent)
public class MainActivity extends AppCompatActivity{
...
//add并show一个Fragment并添加至栈中,此时添加的Fragment是在@Puppet中的containerViewId中的
Rigger.getRigger(this).startFragment(TestFragment.newInstance());
}
3、Activity/Fragment 滑动退出
在需要滑动边缘退出的
Activity/Fragment
上添加Swiper
注解.
@Swiper
@Puppet
public class MainActivity extends AppCompatActivity{
// swiper 只可以使用在有 puppet 注解的类上.
}
@Swiper
@Puppet
public class TestFragment extends Fragment{
// swiper 只可以使用在有 puppet 注解的类上.
}
本项目遵循MIT开源协议. 浏览LICENSE查看更多信息.