Fragment之我的解决方案:Fragmentation

Fragment系列文章:
1、Fragment全解析系列(一):那些年踩过的坑
2、Fragment全解析系列(二):正确的使用姿势
3、Fragment之我的解决方案:Fragmentation

附:SwipeBackFragment的实现分析

如果你通读了本系列的前两篇,我相信你可以写出大部分场景都能正常运行的Fragment了。如果你想了解更多,那么你可以看看我封装的这个库:Fragmentation。
本篇主要介绍这个库,解决了一些BUG,使用简单,提供实时查看栈视图等实用功能。



源码地址:Github,欢迎Star,Fork。

Demo网盘下载(V_0.9.0)
Demo演示:
单Activity + 多Fragment,项目中有3个Demo。

流式的单Activity+多Fragment:

类似微信交互方式的单Activity+多Fragment:(全页面支持滑动返回)

类似新版仿知乎交互方式的单Activity+多Frgment:

Fragmentation

为"单Activity + 多Fragment的架构","多模块Activity + 多Fragment的架构"而生,帮你简化使用过程,轻松解决各种复杂嵌套等问题,修复了官方Fragment库存在的一些BUG。

特性

1、快速开发出各种嵌套设计的Fragment App

2、实时查看Fragment的(包括嵌套Fragment)栈视图的对话框和Log,方便调试

3、增加启动模式、startForResult等类似Activity方法

4、类似Android事件分发机制的Fragment回退方法:onBackPressedSupport(),轻松为每个Fragment实现Back按键事件

5、New!!! 提供onSupportVisible()等生命周期方法,简化嵌套Fragment的开发过程; 提供统一的onLazyInitView()懒加载方法

6、提供靠谱的 Fragment转场动画 的解决方案

7、更强的兼容性, 解决多点触控、重叠等问题

8、支持SwipeBack滑动边缘退出(需要使用Fragmentation_SwipeBack库,详情README)

重大更新日志

0.9.X 来了! 详情点这里

1、解决多点触控问题

2、onFragmentResult()现在在任何情况都可以被正确触发了

3、更强的兼容性,解决已知BUG

4、对于25.1.0+的 v4包,完善了SharedElement!

0.8.X 来了!

1、提供onSupportVisible(),onSupportInvisible()等生命周期方法,简化嵌套Fragment的开发过程;

2、提供统一的onLazyInitView()懒加载方法;

3、SupportActivity提供registerFragmentLifecycleCallbacks()来监控其下所有Fragment的生命周期;

4、可以自定义Tag了!

5、事务提交模式默认为commitAllowingStateLoss().

如何使用

1. 项目下app的build.gradle中依赖:

1 // appcompat v7包是必须的
2 compile ‘me.yokeyword:fragmentation:0.9.3‘
3 // 如果想使用SwipeBack 滑动边缘退出Fragment/Activity功能,请再添加下面的库
4 // compile ‘me.yokeyword:fragmentation-swipeback:0.7.9‘

2. Activity继承SupportActivity:

 1 public class MainActivity extends SupportActivity {
 2
 3   @Override
 4   protected void onCreate(Bundle savedInstanceState) {
 5     super.onCreate(savedInstanceState);
 6     setContentView(...);
 7     if (savedInstanceState == null) {
 8       loadRootFragment(R.id.fl_container, HomeFragment.newInstance());
 9     }
10   }

3. Fragment继承SupportFragment:

1 public class HomeFragment extends SupportFragment {
2
3   private void xxx() {
4         // 启动新的Fragment, 同时还有start(fragment,SINGTASK)、startForResult、startWithPop等启动方法
5     start(DetailFragment.newInstance(HomeBean));
6         // ... 其他方法请自行查看 API
7   }
时间: 2024-08-24 03:24:03

Fragment之我的解决方案:Fragmentation的相关文章

Fragment全解析系列(三):Fragment之我的解决方案:Fragmentation

源码地址:Github,欢迎Star,Fork. Demo网盘下载(V_0.7.13)Demo演示:单Activity + 多Fragment,项目中有3个Demo. 流式的单Activity+多Fragment: 流式的单Activity+多Fragment 类似微信交互方式的单Activity+多Fragment:(全页面支持滑动返回) 类似微信交互方式的单Activity+多Fragment 类似新版仿知乎交互方式的单Activity+多Frgment: 类似新版仿知乎交互方式的单Acti

Fragment的startActivityForResult详细解决方案

由于要用到Fragment中startActivityForResult,所以一开始就直接用activity.startActivityForResult(intent, 0);发现这样用首先会跳转到FragmentActivity中的onActivityResult. 在这个的时候,确实可以处理比如FragmentActivity中有3个Fragment,我们可以选择他跳转到第1个或第2.3个. 但是Fragment中的onActivityResult仍旧没有响应,在网上查找 例子,发现可以在

【转载】Fragment 全解析(1):那些年踩过的坑

http://www.jianshu.com/p/d9143a92ad94 Fragment系列文章:1.Fragment全解析系列(一):那些年踩过的坑2.Fragment全解析系列(二):正确的使用姿势3.Fragment之我的解决方案:Fragmentation 本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑.如果想看较为实用的技巧,

解决APP中fragment重叠问题

由于内存重启,导致的frgament重叠,其原因就是FragmentState没有保存Fragment的显示状态,即mHidden,导致页面重启后,该值为默认的false,即show状态,所以导致了Fragment的重叠. 那么解决方案就是自己写一些代码去保存fragment的显示状态. 当发生内存重启的时候,fragment会触onSaveInstanceState方法,那么我们可以在这个方法内部去保存当前状态,然后在onCreate中进行取值回复,代码如下: public class Bas

Fragment全解析系列(一):那些年踩过的坑

Fragment系列文章:1.Fragment全解析系列(一):那些年踩过的坑2.Fragment全解析系列(二):正确的使用姿势3.Fragment之我的解决方案:Fragmentation 本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑.如果想看较为实用的技巧,请直接看第二篇 Fragment是可以让你的app纵享丝滑的设计,如果你的a

Fragment使用问题

1.Fragment嵌套Fragment,子fragment使用了viewpager,发现fragment不显示,解决方案如下 //使用下面代码 getChildFragmentManager(); //替换 activity.getSupportFragmentManager();

Tcpdump用法

1.监听所有非echo requests/replies的ICMP数据包 //ICMP ECHO(Type 8) 和ECHO Reply (Type 0) #tcpdump "icmp[0] != 8 and icmp[0] != 0" 2.监听非本地网络的每次TCP会话开始和结束数据包 #tcpdump 'tcp[13] & 3 != 0 and not src and dst net localnet' 3.监听网关snup上长度大于576字节的IP数据包 #tcpdump

『ENGLISH』

以A字母开头的词汇 英文 中文 abstract module 抽象模组 access 访问.存取 access control 存取控制 access control information 存取控制资讯 access mechanism 存取机制 access rights 存取权限 accessibility 无障碍性 accessibility information 无障碍网页资讯 accessibility problem 无障碍网页问题 accessible 无障碍的 access

OPENVPN搭建与配置

Content-type: text/html; charset=UTF-8 openvpn Section: Maintenance Commands (8)Updated: 17 November 2008Index Return to Main Contents NAME openvpn - secure IP tunnel daemon. SYNOPSIS openvpn [ options ... ] INTRODUCTION OpenVPN is an open source VPN