1.使用第三方框架搭建单Activity多fragment
1.1 参考的第三方的框架
【国人开发的】地址:https://github.com/YoKeyword/Fragmentation
1.2 库的引入
.
1.3 类的封装
【基类的抽象】子类继承基类,基类封装接口,传入布局的参数;
1.4 butterKnife的库引用
【引入库需要的操作】
1.5 对基类的封装
【绑定资源文件】
【操作一系列的方法】强制子类实现该方法,进行一系列的子类自己的操作;
【解除绑定】
【拼写错误的检查】
1.6 中间层-权限的检查
1.6 应用层
1.7 基类封装的完善
【整数值的引用】
【基类的完善】包括initContainer方法的完善;
【源码】com.flj.latte.activities.ProxyActivity
1 package com.flj.latte.activities; 2 3 import android.os.Bundle; 4 import android.support.annotation.Nullable; 5 import android.support.v7.app.AppCompatActivity; 6 import android.support.v7.widget.ContentFrameLayout; 7 8 import com.diabin.latte.R; 9 import com.flj.latte.delegates.LatteDelegate; 10 11 import me.yokeyword.fragmentation.ExtraTransaction; 12 import me.yokeyword.fragmentation.ISupportActivity; 13 import me.yokeyword.fragmentation.SupportActivityDelegate; 14 import me.yokeyword.fragmentation.anim.FragmentAnimator; 15 16 17 public abstract class ProxyActivity extends AppCompatActivity implements ISupportActivity { 18 19 private final SupportActivityDelegate DELEGATE = new SupportActivityDelegate(this); 20 21 public abstract LatteDelegate setRootDelegate(); 22 23 @Override 24 protected void onCreate(@Nullable Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 DELEGATE.onCreate(savedInstanceState); 27 initContainer(savedInstanceState); 28 } 29 30 private void initContainer(@Nullable Bundle savedInstanceState) { 31 final ContentFrameLayout container = new ContentFrameLayout(this); 32 container.setId(R.id.delegate_container); 33 setContentView(container); 34 if (savedInstanceState == null) { 35 DELEGATE.loadRootFragment(R.id.delegate_container, setRootDelegate()); 36 } 37 } 38 39 @Override 40 protected void onDestroy() { 41 DELEGATE.onDestroy(); 42 super.onDestroy(); 43 System.gc(); 44 System.runFinalization(); 45 }
2. 单Activity界面架构验证
【修改】将MainActivity改为ExampleActivity,并实现其抽象方法;
【新建类】
【新建布局文件】
【找到布局】
【添加对象】
【测试】单个显示一个Activity,验证框架可行;