Android Fragment的使用
Posted 醉清风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Fragment的使用相关的知识,希望对你有一定的参考价值。
定义
Fragment可以理解成一个迷你型的活动,同样可以包含布局,同样有自己的生命周期。比Activity要轻量级,在程序中做界面跳转要比Activity快的多。
静态添加
Fragment可以静态或者动态的添加到Activity中,其中静态情况下,直接在layout.xml中添加fragment节点,并指定android:name属性就可以启动相应的fragment.
动态添加
可以在Activity中通过覆盖onCreate()函数来动态添加Fragment
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null){ getSupportFragmentManager().beginTransaction().add(R.id.container, new MainFragment()).commit(); } }
在Fragment中可以通过添加按钮事件接收器覆盖当前的fragment:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_main, container, false); rootView.findViewById(R.id.btnShowAnotherFragment).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getFragmentManager().beginTransaction() .addToBackStack(null) .replace(R.id.container, new AnotherFragment()) .commit(); } });
注意,一个静态添加的Fragment,通过这种动态的方法进行替换会造成两个Fragment在Framelayout中的重叠。
生命周期:
当一个Fragment被另一个fragment启动的时候会执行oncreate, oncreateview,当返回时会onDestroy销毁。
启动别人的这个Fragment则只会执行onDestroyView,并不会执行onDestroy。
以上是关于Android Fragment的使用的主要内容,如果未能解决你的问题,请参考以下文章
Fragment 中的 ArrayAdapter - Android
Android Reorder Fragment Backstack
Listview 项目未在 Fragment Android 中显示
如何用 Android 数据绑定替换 androidx.fragment.app.FragmentContainerView 中的片段