我模仿书上学的,制作如下图这么一个界面,想通过单击左边的按钮来切换右边的fragment。
我写的代码还保留有C语言的思想,这样代码效率不高,请教一下,判断当前activity下fragment并进行对比的代码该怎么写,对我写的这段代码该如何优化?
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var flag = 1 //因为不知道怎么直接获取当前activity下fragment并进行对比,所以新var了一个flag变量,如何取消这个变量就进行对比呢?
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
if(flag == 1) {
replaceFragment(AnotherRightFragment())
flag = 2
}else{
replaceFragment(RightFragment())
flag =1
}
}
replaceFragment(RightFragment())
}
private fun replaceFragment(fragment: Fragment) {
val fragmentManager = supportFragmentManager
val transaction = fragmentManager.beginTransaction()
transaction.replace(R.id.rightLayout, fragment)
transaction.commit()
}
}