iammert / MultiSearchView

Yet another built-in animated search view for Android.
1.22k stars 86 forks source link

how to set "search text" prorgrammatically in searchbar? #6

Open kunjanrshah opened 5 years ago

kunjanrshah commented 5 years ago

how to set "search text" prorgrammatically in searchbar ?

moelle89 commented 4 years ago

how to set "search text" prorgrammatically in searchbar ?

I guess you mean how to setup the searchView without clicking on the search icon?

   searchContainerView = multiSearchView.findViewById(R.id.searchViewContainer);
    imageViewSearch = multiSearchView.findViewById(R.id.imageViewSearch);
    searchContainerView.setOnClickListener(view -> imageViewSearch.performClick());

    searchContainerView.performClick()

A little , probably not best, workaround to perform a click programmatically to trigger the search text and editTextView to appear. - Somehow it didnt work for me to just call the imageViewSearch to perform a click. - I had to add a new onClickListener to the ContainerView, and make it trigger the imageViewSearch to trigger lol

thats what it actually triggers to start;

    init {
        binding.imageViewSearch.setOnClickListener {
            if (binding.searchViewContainer.isInSearchMode().not()) {
                binding.searchViewContainer.search()
            } else {
                binding.searchViewContainer.completeSearch()
            }
        }
    }
wekomodo commented 3 years ago

to add to the previous answer, just use a handler to delay the thing by 100ms and it should work use this code in MulitSearchView class fun openSearchView() { Handler(Looper.getMainLooper()).postDelayed({ // This method will be executed once the timer is over binding.searchViewContainer.setOnClickListener { binding.imageViewSearch.performClick() } binding.searchViewContainer.performClick() }, 200) } then call binding.multiSearchView.openSearchView() from your Activity worked perfectly for me.