1.为什么有一些代码在Actviity不做任何的操作,但是在Activity上填充一个Fragment去实现?
彪友大神回答:Fragment利于后续的扩展,比如你有多个页面内显示同一个fragment ,只是根据不同的类型就可以显示不同的数据。
积累的多的自然就懂了......菜鸟的成长路程也是很心酸哈
public abstract class BaseFragment extends Fragment { private View mRootView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mRootView = inflater.inflate(getLayoutId(),container,false); return mRootView; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ButterKnife.bind(this,view); afterCreate(savedInstanceState); } protected abstract void afterCreate(Bundle savedInstanceState); protected abstract int getLayoutId(); }
public abstract class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutId()); ButterKnife.bind(this); afterCreate(savedInstanceState); } @Override protected void onDestroy() { super.onDestroy(); ButterKnife.unbind(this); } //为了恢复数据 protected abstract void afterCreate(Bundle savedInstanceState); //传递布局的ID即可 protected abstract int getLayoutId(); }