Activity和fragment的关系
fragment 英文翻译过来是是碎片的意思,它可以说是activity的一部分,不能够独立的存在,需要有一个activity载体,一个fragment可以被多个activity复用。相当于fragment可以随意被挪动,而activity则是固定不变的。fragment复用起来就更加的灵活了。
怎么添加fragment到activity中呢
既然fragment不能独立的存在,需要一个activity作为载体。那怎么才能够添加到fragment呢。
在java代码中添加
在你的布局xml中放置一个布局,用做来添加你的Fragment。任意的布局都可以,一般使用FragmeLayout来加载,小菜鸟也不知道为什么,只是每次都这样做。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".SecondActivity">
// 承载Fragment的布局
<FrameLayout android:id="@+id/fl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
在你的载体activity中用代码添加布局
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val fragment = OneFragment()
// 获取manager开始事务,添加你的Fragment实例,然后提交
supportFragmentManager.beginTransaction().add(R.id.fl_content, fragment).commit()
// Fragment也可以替换的哦
val otherFragment = SecondFragment()
supportFragmentManager.beginTransaction().replace(R.id.fl_content, otherFragment).commit()
}
在xml中添加
在你的布局文件中添加fragment标签, 这个时候一定要标id哦, java代码中不需要做任何处理
// name 的值,需要填你的Fragment的位置:包名+类名,
<fragment android:name="com.example.myapplication.fragment.OneFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/one_fragment" />
------ END ---------
关注我
每天进步一点点