Fragment的使用

时间:2021-7-21 作者:qvyue

Fragment是一种可以嵌入在Activity当中的UI片段,它能让程序更加合理充分利用大屏的空间。示例一个Fragment的简单写法,在Activity中添加两个Fragment,并让这俩个Fragment平分Activity的空间。
1.通过布局添加
新建一个左侧的Fragment的布局:left_fragment.xml,代码如下:


新建一个左侧的Fragment的布局:right_fragment.xml,代码如下:

左边编写的LeftFragment代码如下:

class LeftFragment: Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.left_fragment,container,false)
    }
}

右边编写的RightFragment代码如下:

class RightFragment :Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.right_fragment,container,false)
    }
}

activity中引用:

2.动态添加步骤:
1>创建待添加Fragment的实例
2>获取FragmentManager,在Activity中可以直接调用getSupportFragmentManage()方法获取
3>开启一个事务,通过调用beginTransation()方法开启
4>向容器添加或者替换Fragment,一般是通过replce方法实现,需要传入容器的id和待添加的Fragment实例
5>提交事务,调用commit()方法来完成
如果想要程序在按下back键之后不直接退出,可以使用addtoBackStack()方法,将一个事务添加到返回栈中,该方法中可以需要一个用于描述栈返回状态的名字,一般用null

  private fun replaceFragment(fragment:Fragment){
        val fragmentManager=supportFragmentManager
        val transaction=fragmentManager.beginTransaction()
        transaction.replace(R.id.right_fragment,fragment)
        transaction.addToBackStack(null)
        transaction.commit()
    }
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。