Fragement的基本用法

来源:互联网 发布:合肥百度关键词优化 编辑:程序博客网 时间:2024/05/07 00:22

FragementLifeActivity:

public class FragementLifeActivity extends AppCompatActivity {
private Button bt1, bt2, bt3, bt4;

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_fragement_life);    Log.d("====Activity====", "onCreate");    final Fragment fragment = new LifeFragment();    getSupportFragmentManager()            .beginTransaction()            .replace(R.id.life_frame, fragment)            .commit();    bt1 = (Button) findViewById(R.id.bt_remove);    bt2 = (Button) findViewById(R.id.bt_replace);    bt3 = (Button) findViewById(R.id.bt_hide);    bt4 = (Button) findViewById(R.id.bt_show);    bt1.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (fragment != null) {                getSupportFragmentManager().beginTransaction()                        .remove(fragment).commit();            }        }    });    bt2.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (fragment != null) {                Fragment fragment2 = new FirstFragment();                //设置参数  Bundle捆绑数据用                Bundle bundle=new Bundle();                bundle.putInt("channel",666);                fragment2.setArguments(bundle);                getSupportFragmentManager().beginTransaction()                        .replace(R.id.life_frame, fragment2).commit();            }        }    });    bt3.setOnClickListener(new View.OnClickListener() {        @Override        //隐藏的时候不走生命周期        //repalce销毁fragment        public void onClick(View v) {            if (fragment != null && !fragment.isHidden()) {                getSupportFragmentManager().beginTransaction()                        .hide(fragment).commit();            }        }    });    bt4.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (fragment != null && fragment.isHidden()) {                getSupportFragmentManager().beginTransaction()                        .show(fragment).commit();            }        }    });}@Overrideprotected void onStart() {    super.onStart();    Log.d("====Activity====", "onStart");}@Overrideprotected void onResume() {    super.onResume();    Log.d("====Activity====", "onResume");}@Overrideprotected void onPause() {    super.onPause();    Log.d("====Activity====", "onPause");}@Overrideprotected void onStop() {    super.onStop();    Log.d("====Activity====", "onStop");}@Overrideprotected void onRestart() {    super.onRestart();    Log.d("====Activity====", "onRestart");}@Overrideprotected void onDestroy() {    super.onDestroy();    Log.d("====Activity====", "onDestroy");}

}

activity_fragement_life布局:

这里写图片描述

这里写图片描述

FirstFragment:

public class FirstFragment extends Fragment {

public FirstFragment() {    // Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,                         Bundle savedInstanceState) {    // Inflate the layout for this fragment    //把静态布局拿出来。。。返回一个view    return inflater.inflate(R.layout.fragment_first, container, false);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);    Bundle bundle=getArguments();    if(bundle!=null){        int ch=bundle.getInt("channel");        TextView tv= (TextView) getView().findViewById(R.id.tv);        tv.setText(ch+"");    }}

}

LifeFragment:

public class LifeFragment extends Fragment {

public LifeFragment() {    // Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,                         Bundle savedInstanceState) {    // Inflate the layout for this fragment    return inflater.inflate(R.layout.fragment_life, container, false);}@Overridepublic void onAttach(Context context) {    super.onAttach(context);    Log.d("====Fragement====", "onAttach");}@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    Log.d("====Fragement====", "onCreate");}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);    Log.d("====Fragement====", "onActivityCreated");    //取得布局  拿到当前fragment的布局   // getView().findViewById(R.id.tv);    //拿到activity的布局    //getActivity().findViewById(R.id.bt_remove);  耦合度高 不好}@Overridepublic void onStart() {    super.onStart();    Log.d("====Fragement====", "onStart");}@Overridepublic void onResume() {    super.onResume();    Log.d("====Fragement====", "onResume");}@Overridepublic void onPause() {    super.onPause();    Log.d("====Fragement====", "onPause");}@Overridepublic void onStop() {    super.onStop();    Log.d("====Fragement====", "onStop");}@Overridepublic void onDestroyView() {    super.onDestroyView();    Log.d("====Fragement====", "onDestroyView");}@Overridepublic void onDestroy() {    super.onDestroy();    Log.d("====Fragement====", "onDestroy");}@Overridepublic void onDetach() {    super.onDetach();    Log.d("====Fragement====", "onDetach");}

}

fragment_life布局:
这里写图片描述

fragment_first布局:

这里写图片描述

实现效果:

运行后或按了ShowFragment的效果

这里写图片描述

按了HideFragment的效果

这里写图片描述

按了ReplaceFragment的效果

这里写图片描述

0 0
原创粉丝点击