如何解决在后面导航上一个片段丢失的数据
在我的 MainActivity 中,我有一个 Contacts 片段,其中有一个 ViewPager 和一个带有 FriendsFragment 和 PendingsFragment 的 BottomNavigationView。默认情况下,当 ContactsFragment 打开时会显示 FriendsFragment。
override fun onCreateView(
inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_contacts,container,false)
ViewPagerAdapter(requireFragmentManager()).apply {
addFragment(FriendsFragment())
addFragment(PendingFragment())
}.also {
view.contactsViewPager.adapter = it
}
return view
}
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
super.onViewCreated(view,savedInstanceState)
bottomNavigationView.setOnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.friends -> contactsViewPager.currentItem = 0
R.id.pending -> contactsViewPager.currentItem = 1
}
false
}
contactsViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
position: Int,positionOffset: Float,positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
if (prevMenuItem != null)
prevMenuItem!!.isChecked = false
else
bottomNavigationView.menu.getItem(0).isChecked = false
bottomNavigationView.menu.getItem(position).isChecked = true
prevMenuItem = bottomNavigationView.menu.getItem(position)
}
override fun onPageScrollStateChanged(state: Int) {}
})
}
在 FriendsFragment 中,我有一个浮动按钮,使用 onClick 导航到 SearchFragment
createNew.setOnClickListener {
findNavController().navigate(ContactsFragmentDirections.actionContactsFragmentToSearchConnection())
}
然后新片段出现。但是,当我按下后退按钮返回 ContactsFragment 时 ContactsFragment 仅显示 BottomNavigationView,不显示其他内容。
为什么会这样?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。