Rahul Rokade
Rahul Rokade

Reputation: 162

if paused end fragment and then onResumed then automatically change initial position and open first fragment

**if paused end fragment and then onResumed then automatically change initial position and open first fragment. ** *there are five page; one container to show all fragment list and button click next and back in activity. My case problem occurred, open fragment and click next up to last position. work is perfect but click android background button then paused last fragment and again resumed then automatically changed initial first fragment position *

private fun setUpViewPager(){

        val fragmentList : MutableList< Fragment> = mutableListOf()
        fragmentList.add(SurveyPageOneFragment.newInstance(false))
        fragmentList.add(SurveyPageTwoFragment.newInstance(false))
        fragmentList.add(SurveyPageThreeFragment.newInstance(false))
        fragmentList.add(SurveyPageFourFragment.newInstance(false))
        fragmentList.add(SurveyPageFiveFragment.newInstance(false))

        surveyPagerAdapter = SurveyPagerAdapter(fragmentList,supportFragmentManager,lifecycle)
        binding.viewPager.adapter = surveyPagerAdapter
        binding.dotsIndicator.attachTo(binding.viewPager)

    }
private fun setOnClick(){
        binding.btnNext.setOnClickListener {
            if (binding.viewPager.currentItem < binding.viewPager.adapter?.itemCount!!){
                when (fragPosition) {
                    0 -> {
                        Log.i("TAG", "Page 1: Position $fragPosition")
                        binding.viewPager.currentItem = binding.viewPager.currentItem +1
                    }
                    1 -> {
                        Log.i("TAG", "Page 2: Position $fragPosition")
                        binding.viewPager.currentItem = binding.viewPager.currentItem +1
                    }
                    2 -> {
                        Log.i("TAG", "Page 3: Position $fragPosition")
                        binding.viewPager.currentItem = binding.viewPager.currentItem +1
                    }
                    3 -> {
                        Log.i("TAG", "Page 4: Position $fragPosition")
                        binding.viewPager.currentItem = binding.viewPager.currentItem +1
                    }
                    4 -> {
                        Log.i("TAG", "Page 5: Position $fragPosition")
                        binding.viewPager.isUserInputEnabled = true
                        binding.viewPager.currentItem = binding.viewPager.currentItem +1
                    }
                }
            }
        }


        binding.btnBack.setOnClickListener {
            if (binding.viewPager.currentItem != 0){
                binding.viewPager.currentItem = binding.viewPager.currentItem -1
            }
        }

        binding.btnDone.setOnClickListener {
            startActivity(Intent(context,SurveyCompleteActivity::class.java))
        }

        val onPageChangeCallback = object : OnPageChangeCallback(){
            override fun onPageSelected(position: Int) {
                Log.i("TAG", "PageChange: $position")
                fragPosition = position

                if (position == 0){
                    binding.btnBack.visibility = View.GONE
                }else{
                    binding.btnBack.visibility = View.VISIBLE
                }

                if (position < binding.viewPager.adapter?.itemCount!! -1){
                    binding.btnNext.visibility = View.VISIBLE
                    binding.btnDone.visibility = View.GONE
                }else{
                    binding.btnNext.visibility = View.GONE
                    binding.btnDone.visibility = View.VISIBLE
                    binding.viewPager.isUserInputEnabled = false
                }

            }
        }
        binding.viewPager.registerOnPageChangeCallback(onPageChangeCallback)
    }

fragment one

 override fun onResume() {
        Log.i("TAG", "onResume: survey page one")
        super.onResume()
        viewLifecycleOwner.lifecycle.currentState === Lifecycle.State.RESUMED
    }

    override fun onPause() {
        Log.i("TAG", "onPause: survey page one")
        super.onPause()
    }

    override fun onDestroy() {
        super.onDestroy()
        _binding = null
    }

    companion object {
        @JvmStatic
        fun newInstance(isMyBoolean: Boolean) = SurveyPageOneFragment().apply {
            val fragment = SurveyPageOneFragment()
            arguments = Bundle().apply {
                putBoolean("REPLACE WITH A STRING CONSTANT", isMyBoolean)
            }
            fragment.arguments
            return fragment
        }
    }

fragment five

override fun onResume() {
        Log.i("TAG", "onResume: survey page five")
        super.onResume()
        viewLifecycleOwner.lifecycle.currentState === Lifecycle.State.RESUMED
    }

    override fun onPause() {
        Log.i("TAG", "onPause: survey page five")
        super.onPause()
    }

    override fun onDestroy() {
        super.onDestroy()
         _binding = null
    }


    companion object {

        @JvmStatic
        fun newInstance(isMyBoolean: Boolean) = SurveyPageFiveFragment().apply {
            val fragment = SurveyPageFiveFragment()
            arguments = Bundle().apply {
                putBoolean("REPLACE WITH A STRING CONSTANT", isMyBoolean)
            }
            fragment.arguments
            return fragment
        }
    }

Upvotes: 1

Views: 26

Answers (0)

Related Questions