Activity中启动Fragment

Activity需要继承自FragmentActivity

 

Activity绑定Fragment有两种方法:

一:动态代码

声明变量(来自android.support.v4.app包)

FragmentManager fragmentManager;
FragmentTransaction transaction;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//Fragment启动方法封装
replaceFragment(new FragmentLogin());

}

 

//Fragment启动方法:

private void replaceFragment(Fragment fragment) {
// 1.获取FragmentManager,在活动中可以直接通过调用getFragmentManager()方法得到
fragmentManager =getSupportFragmentManager();
// 2.开启一个事务,通过调用beginTransaction()方法开启
transaction = fragmentManager.beginTransaction();
// 3.向容器内添加或替换碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例
transaction.replace(R.id.fr_container, fragment);  //fr_container不能为fragment布局,可使用线性布局相对布局等。
// 4.使用addToBackStack()方法,将事务添加到返回栈中,填入的是用于描述返回栈的一个名字
transaction.addToBackStack(null);
// 5.提交事物,调用commit()方法来完成
transaction.commit();
}

 

二、xml布局文件绑定Fragment 

在xml文件中声明name属性,找到对应的Fragment.class


//必须指定name,找到对应的class,并且在class里
setContentView(R.layout.activity_main);找到相应的Fragment的布局xml文件

 

<fragment

android:id="@+id/fr_container"
android:name="com.example.fragment.FragmentLogin"

android:layout_width="match_parent"
android:layout_height="match_parent" />

posted @ 2017-03-02 17:15  cqutwangyu  阅读(5731)  评论(0编辑  收藏  举报