Fragment英文翻译为碎片,可以在一个Activity中可以嵌套多个Fragment,相当于多个页面。但是它们都在同一 个Activity中,fragment的生命周期和Activity类似,如果当前Activity没有注销(onDestory)其中的众多的fragment也不会被销毁。
1.可以在XML中编写,也可以在代码中编写,写一个类继承android.support.v4.app.Fragment,记住:是V4包中的Fragment.(考虑到版本的兼容性问题:fragment是Android3.0才引入的)
2.重写父类Fragment的onCreate(),和onCreateView()方法,onCreateView方法会返回一个VIew,这个View将被填充到Activity的界面中。所以一般我们重点就是把onCreateView()覆写好。</span>
3.在Acticvty中产生一个fragment的实例,调用fragmentManager 和 fragmentTransaction;实现fragment的添加,移除,替换(add,remove,replace),记住,当这些事务写完以后要Commit(),保证事务被提交,这样才会生效。
1.可以在XML中编写,也可以在代码中编写,写一个类继承android.support.v4.app.Fragment,记住:是V4包中的Fragment.(考虑到版本的兼容性问题:fragment是Android3.0才引入的)
2.重写父类Fragment的onCreate(),和onCreateView()方法,onCreateView方法会返回一个VIew,这个View将被填充到Activity的界面中。所以一般我们重点就是把onCreateView()覆写好。</span>
3.在Acticvty中产生一个fragment的实例,调用fragmentManager 和 fragmentTransaction;实现fragment的添加,移除,替换(add,remove,replace),记住,当这些事务写完以后要Commit(),保证事务被提交,这样才会生效。
</pre><pre code_snippet_id="423037" snippet_file_name="blog_20140709_6_921150" name="code" class="java">
下面是一个DEMO:
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.support.v4.app.FragmentManager;
/**
Fragment的生命周期:
* 第一次启动该fragment: onCreate --> onCreateView -->onStart --> onResume
* 变得不处于前台的时候:onPause -->onDestroyView
* 重新回到前台时候:OnCreateView -->onStart --> onResume
* @author yesong
*
*/
public class ContentFragment extends Fragment {
private Button mStartButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("yesongyesong", "ContentFragment : onCreate ");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content_fragment_layout, null);
mStartButton = (Button) view.findViewById(R.id.start_button);
mStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity activity = (MainActivity) getActivity();
activity.enterContentFrament01(mStartButto