mqttAndroid知识Android开发

Fragment关于压栈的知识

2016-09-12  本文已影响163人  金馆长说

这里说一下关于fragment的一些压栈和出栈的知识

fragment在我们的工作是经常用到的,简单说它就是比activity更加小巧而且灵活的一个UI组件而且具备和activity差不多的一些声明周期方法。既能在xml布局中直接引入重用,也能在我们的代码中动态的添加。fragment必须是依付activity而存在的,activity的生命周期会影响到fragment的生命周期。

onAttach
当Fragment和Activity发生关联是调用

onCreateView
创建视图

onActivityCreated
activity的oncreate调完后,调用。

onDestoryView
和OnCreate相应 Fragment视图移除后调用

onDetach
和onAttach对于 取消关联是调用

除了OnCreateView以外,其他方法重新都要调用super



  1. 静态使用方法
---xml
<fragment   
 android:id="@+id/fragment"
 android:name="AddFragment"   
 android:layout_width="match_parent"    
 android:layout_height="match_parent">

---代码
public class OneFragment extends android.app.Fragment {

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        Log.i("jinwei", "onAttach");
    }


    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        Log.i("jinwei", "onAttach activity");
    }


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("jinwei", "onCreate");
    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Log.i("jinwei", "onCreateView");
        return super.onCreateView(inflater, container, savedInstanceState);
    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Log.i("jinwei", "onActivityCreated");
    }


    @Override
    public void onStart() {
        super.onStart();
        Log.i("jinwei", "onStart");
    }


    @Override
    public void onResume() {
        super.onResume();
        Log.i("jinwei", "onResume");
    }


    @Override
    public void onPause() {
        super.onPause();
        Log.i("jinwei", "onPause");
    }


    @Override
    public void onStop() {
        super.onStop();
        Log.i("jinwei", "onStop");
    }


    @Override
    public void onDetach() {
        super.onDetach();
        Log.i("jinwei", "onDetach");
    }


    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.i("jinwei", "onDestroy");
    }


    @Override
    public void onDestroyView() {
        super.onDestroyView();
        Log.i("jinwei", "onDestroyView");
    }
}



2.动态使用

---xml
<Fragment   
 android:id="@+id/frame_layout"
 android:layout_width="match_parent"    
 android:layout_height="match_parent">

---代码片段

FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.fragment, mOneFragment);
transaction.commit();

提交方法的参考
具体的使用方法参考

上一篇 下一篇

猜你喜欢

热点阅读