0.創(chuàng)建并顯示fragment
a.構(gòu)造函數(shù)傳xml(圖一)? ?或是? ? ?在onCreateView()中創(chuàng)建(圖二) 或是Binding類(圖三)
b.在Activity內(nèi)創(chuàng)建FragmentContainerView
xml里name屬性設(shè)置第一個(gè)fragment
但通常創(chuàng)建時(shí)浅悉,就會(huì)讓你選擇關(guān)聯(lián)哪一個(gè)fragment作為第一個(gè)fragment
1.切換fragment
a.開(kāi)啟transaction(用于處理fragment的Manager工具)
val fragmentTransaction = supportFragmentManager.beginTransaction()
b.配置fragment? ?->? 加個(gè)FragmentContainerView畫框到Activity上覆致,并聲明下一個(gè)fragment
fragmentTransaction.add(R.id.fragmentContainerView, HomeFragment())
c.將消失的fragment入棧 ->方便? 返回還能使用
fragmentTransaction.addToBackStack(null)
d.提交
fragmentTransaction.commit()
2.利用高階函數(shù)優(yōu)化版
//創(chuàng)建fragment管理器并最后提交
supportFragmentManager.commit{ setCustomAnimations(R.anim.small_to_big,R.anim.big_to_small)? ?//設(shè)置過(guò)渡動(dòng)畫
replace(R.id.fragmentContainerView, HomeFragment())? ? ?/**FragmentTransaction的? repalce方法贮竟,用后者fragment替換前者的fragment*/
setReorderingAllowed(true)
addToBackStack(null)//入棧
}
補(bǔ)充:共享動(dòng)畫在fragment里的添加方式
a.找到使用共享動(dòng)畫的控件
b.調(diào)用addSharedElement
addSharedElement(找到當(dāng)前fragment布局中待添加動(dòng)畫的控件碉纳,待切換fragment中控件的transitionName<記得控件創(chuàng)建時(shí)加transitonName>)
3.設(shè)置補(bǔ)間動(dòng)畫?(translate rotate scale alpha)四種基本
補(bǔ)間動(dòng)畫詳細(xì)用法? 記得查找 鄙人另一篇 “Android動(dòng)畫 ”的文章
a.設(shè)置單個(gè)動(dòng)畫效果?
b.設(shè)置多個(gè)同時(shí)進(jìn)行的動(dòng)畫
c.同樣在高階函數(shù)supportFragmentManager.commit{}里調(diào)用setCustomAnimations()还惠,