美文网首页
Activity和fragment的数据交互(1)-Fragme

Activity和fragment的数据交互(1)-Fragme

作者: 小菜鸟学Android | 来源:发表于2019-10-12 13:34 被阅读0次

Activity和fragment的关系

fragment 英文翻译过来是是碎片的意思,它可以说是activity的一部分,不能够独立的存在,需要有一个activity载体,一个fragment可以被多个activity复用。相当于fragment可以随意被挪动,而activity则是固定不变的。fragment复用起来就更加的灵活了。

怎么添加fragment到activity中呢

既然fragment不能独立的存在,需要一个activity作为载体。那怎么才能够添加到fragment呢。

  • 在java代码中添加
  1. 在你的布局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>
  1. 在你的载体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" />

相关文章

网友评论

      本文标题:Activity和fragment的数据交互(1)-Fragme

      本文链接:https://www.haomeiwen.com/subject/ofjqmctx.html