#android #kotlin
Вопрос:
у меня есть 2 фрагмента (уведомление и фрагмент утверждения), но я хочу получить такой результат : мое уведомление нажмите «Возмещение», а затем перейдите на вкладку «Возмещение» (во фрагменте утверждения), это возможно? как это сделать?
my code for intent fragment like this :
private fun navigate(type: String) {
if (findNavController().currentDestination?.id == R.id.notificationFragment) {
when (type) {
"Approval","CustomAbsence" -> findNavController().navigate(NotificationFragmentDirections.navigateToApproval())
"Approval","Leafe" -> findNavController().navigate(NotificationFragmentDirections.navigateToApproval())
"Approval","Reimbursement" -> findNavController().navigate(NotificationFragmentDirections.navigateToApproval())
"Approval","Overtime" -> findNavController().navigate(NotificationFragmentDirections.navigateToApproval())
"Approval","Reibursement" -> findNavController().navigate(NotificationFragmentDirections.navigateToApproval())
}
}
}
Комментарии:
1. Просто передайте значение в пакете во фрагмент утверждения, а затем установите текущую вкладку в соответствии со значением .
2. можете ли вы привести мне пример кода, сэр?
3. мой параметр в rest выглядит так : val tab_approval_type:Строка
Ответ №1:
Вы можете использовать viewpager для отображения фрагмента. Когда пользователь нажимает кнопку push, вам нужно отправить фрагмент ввода. Затем вы можете найти позицию по типу и установить ее в текущее положение в окне просмотра
Простой пример##
val selectedItem = requireArguments().getInt("positon")
binding.viewPager.adapter = adapter
binding.viewPager.currentItem = selectedItem
binding.tabs.setupWithViewPager(binding.viewPager, false)
binding.viewPager.addOnPageChangeListener(object: ViewPager.OnPageChangeListener {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
selectedPosition = position
}
override fun onPageSelected(position: Int) {
selectedItem = position
}
override fun onPageScrollStateChanged(state: Int) {
}
})
Комментарии:
1. как, сэр? можете ли вы привести мне пример указанной вкладки viewpager? 🙂
2. мой параметр в rest, такой как этот тип valuable_type: Reibursement, мой код в фрагменте утверждения, таком как этот частный забавный навигатор(тип: строка) { if (findNavController().currentDestination? .id == R. идентификатор.Уведомление фрагмента) { когда (тип) { «Утверждение»,»Повторное утверждение» -> Найти контроллер().навигация(Уведомления о фрагментах.navigateToApproval()) } } }
3. я в замешательстве, дальше что я могу для этого сделать?
4. помогите мне, сэр, пожалуйста
5. Я приведу простой пример в своем ответе