如何通过按下后退按钮移动到主片段



我使用运动布局创建了一个自定义导航抽屉,其中有图像视图、文本视图和导航主机片段(片段容器视图(。问题是,当我单击导航抽屉中的任何视图时,它都会打开一个片段,但当单击后退按钮时,它会关闭应用程序。

这是我的mainactivity.kt文件

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val contactus = findViewById<TextView>(R.id.contact_us)
val drawer = findViewById<ImageView>(R.id.image8)
val tandc = findViewById<TextView>(R.id.termsandconditions)
val motionLayout = findViewById<MotionLayout>(R.id.motion_layout)

contactus.setOnClickListener {
supportFragmentManager.beginTransaction().apply {
replace(R.id.fragmentContainerView2, contact_us_fragment())
commit()
motionLayout.transitionToStart()

}
}
drawer.setOnClickListener {
motionLayout.transitionToEnd()
motionLayout.transitionToStart()
}
tandc.setOnClickListener {
supportFragmentManager.beginTransaction().apply {
replace(R.id.fragmentContainerView2, TandCFragment())
commit()
motionLayout.transitionToStart()
}
}
}
}

如何在按下后退按钮时移动到主页片段?

我认为您必须实现onBackPressed()方法。当用户按下/向后滑动时,会调用此操作。

override fun onBackPressed() {
// Code here to handle going to fragment
}

您可以将片段添加到后堆栈并给它们id,然后用这个id弹出后堆栈。

supportFragmentManager.beginTransaction()
.add(yourFragment);
.addToBackStack("YourFragmentTag");
.commit()

然后通过将堆栈弹出到此片段

override fun onBackPressed() { 
getFragmentManager().popBackStack("YourFragmentTag", 0);
}

相关内容

  • 没有找到相关文章

最新更新