откройте указанную вкладку котлин, возможно ли это?

#android #kotlin

Вопрос:

у меня есть 2 фрагмента (уведомление и фрагмент утверждения), но я хочу получить такой результат : мое уведомление нажмите «Возмещение», а затем перейдите на вкладку «Возмещение» (во фрагменте утверждения), это возможно? как это сделать?

я хочу, чтобы это было так после того, как я нажму quot;Возмещениеquot; (пример)

 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. Я приведу простой пример в своем ответе