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,驗證框架可行;

