0.创建并显示fragment
a.构造函数传xml(图一) 或是 在onCreateView()中创建(图二) 或是Binding类(图三)
b.在Activity内创建FragmentContainerView
xml里name属性设置第一个fragment
但通常创建时,就会让你选择关联哪一个fragment作为第一个fragment
1.切换fragment
a.开启transaction(用于处理fragment的Manager工具)
val fragmentTransaction = supportFragmentManager.beginTransaction()
b.配置fragment -> 加个FragmentContainerView画框到Activity上,并声明下一个fragment
fragmentTransaction.add(R.id.fragmentContainerView, HomeFragment())
c.将消失的fragment入栈 ->方便 返回还能使用
fragmentTransaction.addToBackStack(null)
d.提交
fragmentTransaction.commit()
2.利用高阶函数优化版
//创建fragment管理器并最后提交
supportFragmentManager.commit{ setCustomAnimations(R.anim.small_to_big,R.anim.big_to_small) //设置过渡动画
replace(R.id.fragmentContainerView, HomeFragment()) /**FragmentTransaction的 repalce方法,用后者fragment替换前者的fragment*/
setReorderingAllowed(true)
addToBackStack(null)//入栈
}
补充:共享动画在fragment里的添加方式
a.找到使用共享动画的控件
b.调用addSharedElement
addSharedElement(找到当前fragment布局中待添加动画的控件,待切换fragment中控件的transitionName<记得控件创建时加transitonName>)
3.设置补间动画 (translate rotate scale alpha)四种基本
补间动画详细用法 记得查找 鄙人另一篇 “Android动画 ”的文章
a.设置单个动画效果
b.设置多个同时进行的动画
c.同样在高阶函数supportFragmentManager.commit{}里调用setCustomAnimations(),