Search code examples
androidkotlinsearchnavigationsearchview

Listener for clicking on any area of ​the SearchView


I have a SearchView and I am using navigation components. I made such logic that when I click on the search button on the keyboard from fragment A, there is a transition with the transfer of the SearchView text to fragment B.

And here I am in fragment B, and the text from SearchView in fragment A was passed to the input field of SearchView in fragment B, and now I need that when I click on any area of ​​the SearchView, it will go back to fragment A, while android: iconifiedByDefault = "false" , how to do it?


Solution

  • I think this simple code should work.

    in Fragment B:

    val searchView = view?.findViewById<SearchView>(R.id.yourSearchViewId)
    searchView?.setOnClickListener { /* go back to fragment A */ }
    

    EDITED: Made it work with these 2 listeners:

    /* this is invoked when you click on anything but the input field */
    binding.searchView.setOnTouchListener { v, event -> // ignore all touch events
        /* go back to Fragment A */
        true
    }
                
    /* this is invoked when you click on the input field */
    binding.searchView.setOnQueryTextFocusChangeListener { view, b ->
        /* go back to Fragment A */
    }