以下是一个示例代码,演示了如何使用Kotlin在按下按钮时切换Fragment视图:
import android.os.Bundle
import android.support.v4.app.Fragment
import android.support.v7.app.AppCompatActivity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 设置初始Fragment
val initialFragment = Fragment1()
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, initialFragment)
.commit()
// 设置按钮点击事件
button.setOnClickListener {
val fragment = if (currentFragment is Fragment1) {
Fragment2()
} else {
Fragment1()
}
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, fragment)
.commit()
currentFragment = fragment
}
}
companion object {
var currentFragment: Fragment? = null
}
}
class Fragment1 : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment1, container, false)
}
}
class Fragment2 : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment2, container, false)
}
}
在这个示例中,我们首先定义了两个Fragment:Fragment1和Fragment2。然后,在MainActivity中,我们设置了一个初始Fragment(在这个示例中是Fragment1)并将其添加到fragment_container中。然后,我们在按钮的点击事件中切换Fragment视图,如果当前显示的是Fragment1,就切换到Fragment2;如果当前显示的是Fragment2,则切换到Fragment1。我们使用FragmentManager的replace方法来替换当前的Fragment,并将新的Fragment添加到fragment_container中。
需要注意的是,我们使用了一个静态变量currentFragment来保存当前显示的Fragment,以便在切换Fragment时进行判断和更新。
希望这个示例能帮助到你!
下一篇:按下按钮让线程开始工作