问题描述
我在我的应用程序中使用的活动有很多不同的片段,而我遇到的一个主要问题是,当我从一个片段转到另一个片段时,调用onPause和onDestroyView之间大约有一秒的延迟(使用简单的日志进行检查)。这就产生了一个问题,如果我在输入片段后立即按返回按钮,它将返回并不调用onCreateView,基本上显示了一个空白屏幕(活动的背景)。任何想法可能导致这种情况发生吗?我已经尝试解决了很长时间。
class MainMenuTableViewController: Fragment() {
/**Main menu,show all the topics and stuff*/
val Topics = arrayOf<TriviaQuestion.Topic>(TriviaQuestion.Topic.anatomy,TriviaQuestion.Topic.cpr,TriviaQuestion.Topic.medicine,TriviaQuestion.Topic.anamnesis,TriviaQuestion.Topic.routine,TriviaQuestion.Topic.trauma,TriviaQuestion.Topic.teamWork,TriviaQuestion.Topic.nbc,TriviaQuestion.Topic.mentalHealth,TriviaQuestion.Topic.publicHealth,TriviaQuestion.Topic.other,TriviaQuestion.Topic.coronaTeams,TriviaQuestion.Topic.coronaNursingTeams)
override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
DatabaseFacade.fetchTriviaQuestions()
MenuBarDatabaseFacade.databaseSingleton.getVideosAndMaterials()
// Handle the back button event
return inflater.inflate(R.layout.fragment_main_menu,container,false)
}
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
Log.d("popbackstacktest","view created")
super.onViewCreated(view,savedInstanceState)
mainMenutopicsRecyclerView.layoutManager = linearlayoutmanager(activity)
lineImage.scaleX = 0.0000001f
mainMenutopicsRecyclerView.adapter = MainMenuTableViewAdapter(Topics) { position ->
MenuViewController.tabSelected = Tabs.Pdf
MenuViewController.topicChosen = Topics[position]
findNavController().navigate(R.id.action_MainMenuFragment_to_MenuViewFragment)
}
}
override fun onStart() {
super.onStart()
Log.d("popbackstacktest","starting")
}
override fun onResume() {
Log.d("popbackstacktest","resuming")
super.onResume()
animateLine()
}
override fun onDestroy() {
super.onDestroy()
Log.d("popbackstacktest","destroying")
}
override fun onDestroyView() {
super.onDestroyView()
Log.d("popbackstacktest","destroying view")
}
override fun onPause() {
super.onPause()
Log.d("popbackstacktest","pausing")
}
fun animateLine(){
/**Animate line to get bigger until full size**/
lineImage.scaleX = 0.0000001f
val xScaleAnimator = ObjectAnimator.ofFloat(lineImage,"scaleX",1f)
xScaleAnimator.duration = 1250
val scaleAnimator = AnimatorSet()
scaleAnimator.play(xScaleAnimator)
scaleAnimator.start()
}
那是片段的所有代码,基本上它具有recyclerview,当我按一个项目时,它将相应地导航到另一个片段。问题是,正如我之前提到的那样,即使在显示另一个片段之后,onDestroyView也会被延迟调用,这意味着如果我在输入片段后立即按返回按钮(或者如果我将popBackStack( )在第二个片段的onViewCreated中
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)