JingYeoh/FragmentRigger
JingYeoh/FragmentRigger has 2,245 GitHub stars and 262 forks. GitHot measured 0 stars in 24 hours and -2 in 7 days. Last checked 2026-11-12 16:39 UTC. Last push 2026-02-01.
:boom:A powerful library powered by AOP to manage Fragments.(一个基于AOP设计的Fragment管理框架)
实测星标增长
- 24小时
- 0
- 7天
- -2
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README-CN.md
原文FragmentRigger

:boom:一个强大的Fragment框架。
这可能是使用成本最低的Fragment框架。
无需继承!!!无需继承!!!无需继承!!! 重要的话说三遍!!
在使用FragmentRigger的时候,使用成本只有一行注解!!!
原理: 是把Fragment/Activity生命周期相关方法定义为切点,通过ASpectJ绑定并使用代理类进行操作。
演示
| Stack manager | Show | Lazy loading | Replace |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
目标
- 让Fragment的使用更简单.
- 以最低的成本去使用Fragment.
Wiki
开始
- 安装
- 开始使用
- 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 注解的类上.
}
License
![]()
本项目遵循MIT开源协议. 浏览LICENSE查看更多信息.
探索相关项目
affaan-m/ECC
智能体执行与控制框架的性能优化系统。面向 Claude Code、Codex、Opencode、Cursor 等,涵盖技能、本能、记忆、安全与研究优先的开发。
302,084 星标NousResearch/hermes-agent
与你一同成长的智能体
263,011 星标multica-ai/andrej-karpathy-skills
一个用于改进 Claude Code 行为的 CLAUDE.md 文件,源自 Andrej Karpathy 对 LLM 编程陷阱的观察。
232,585 星标firecrawl/firecrawl
借助来自网络及其他来源的数据,强化你的 AI 智能体。正在构建面向超级智能的资料库。🔥
201,294 星标


