Кнопка «Назад» во фрагменте открывается и закрывает панель навигации вместо возврата - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть навигационный ящик, который работает совершенно нормально с иконкой в ​​ящике, однако, если я перехожу от активности в навигационном ящике к любому фрагменту, также отображается стрелка назад, но при нажатии на кнопку навигации со стрелкой назад открывается, я просто хочу чтобы установить мое действие, нажмите кнопку «Назад» вместо открывающегося ящика. Пожалуйста, помогите мне исправить эту проблему.

Код активности моего ящика ниже

toggle?.setDrawerIndicatorEnabled(false);

    drawer_layout.addDrawerListener(toggle!!)
    toggle!!.syncState()


    val header = (findViewById<NavigationView>(R.id.nav_view)).getHeaderView(0)


    toggle!!.isDrawerIndicatorEnabled = false


    toggle!!.setHomeAsUpIndicator(R.drawable.ic_profile_icon)

    usernameTv = header.findViewById(R.id.username_tv)
    profileImage = header.findViewById(R.id.profile_image_user)
    userDesigTv = header.findViewById(R.id.user_designation_tv)
    pointsTv = header.findViewById(R.id.points_tv)
    userPhotoImv = header.findViewById(R.id.profile_image)
    headerLayout = header.findViewById(R.id.header_layout_profile_edit)
    mainWidgetBottomMenuLayout = findViewById(R.id.main_widget)
    addProductTv = findViewById(R.id.add_products_tv);
    createJobTv = findViewById(R.id.create_job_tv);
    createPostTv = findViewById(R.id.create_post_tv);
    closeBtn = findViewById(R.id.close_btn);

    bottomNavigationView = findViewById(R.id.navigation)

    drawer = findViewById<DrawerLayout>(R.id.drawer_layout)

    navigationView = findViewById(R.id.nav_view)


    toggle?.setToolbarNavigationClickListener {
        if (drawer!!.isDrawerOpen(GravityCompat.START)) {
            drawer!!.closeDrawer(GravityCompat.START)
        } else {
            drawer!!.openDrawer(GravityCompat.START)
        }

    }
    navigationView?.setNavigationItemSelectedListener(this)

    loginSession =
        Session(
            this
        )
    val isloggedin = loginSession!!.isLoggedIn


    addProductTv?.setOnClickListener()
    {

    }

    createJobTv?.setOnClickListener()
    {
        val fragmentTransaction1 = supportFragmentManager.beginTransaction()
        fragmentTransaction1.replace(R.id.container, JobPostFragment())
            .addToBackStack(null)
        fragmentTransaction1.commit()
        closeBottomSheet()
    }

    createPostTv?.setOnClickListener()
    {

    }

    closeBtn?.setOnClickListener()
    {
        closeBottomSheet()
    }

    val fragmentTransaction1 = supportFragmentManager.beginTransaction()
    fragmentTransaction1.replace(R.id.container, FeedsViewFragment())
        .addToBackStack(null)
    fragmentTransaction1.commit()



    viewmodel = ViewModelProviders.of(this, factory).get(LoginViewModel::class.java)

    viewmodel?.getLoggedInUser()?.observe(this, Observer { it ->
        setData(it)
    })


    if (isloggedin && loginSession!!.loginDetails.get(Constants.USERTYPE).equals(Constants.COMPANY)) {
        populateMenuForCompanies()
    } else if (isloggedin && loginSession!!.loginDetails.get(Constants.USERTYPE).equals(
            Constants.INDIVIDUAL
        )
    ) {
        populateMenuForIndividual()
    }

В моем фрагменте

переопределить удовольствие onViewCreated (view: View, saveInstanceState: Bundle? ) {

    (activity as AppCompatActivity).supportActionBar!!.setDisplayHomeAsUpEnabled(true)
    (activity as AppCompatActivity).supportActionBar!!.setDisplayShowHomeEnabled(true)

    super.onViewCreated(view, savedInstanceState)
}

Пожалуйста, дайте мне знать, как go вернуться к предыдущему фрагменту, щелкнув стрелку назад вместо открытия ящика навигации.

Любая помощь будет высоко ценится

...