-1
searchView = findViewById(R.id.searchicon);
    searchView.setOnSearchClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            v.getLayoutParams().width = 1800;
        }
    });
   searchView.setOnCloseListener(new SearchView.OnCloseListener() {
       @Override
       public boolean onClose() {

           return false;
       }
   });

I want to decrease the width of searchview in OnCloseListener how do I get the view for that?

Pavneet_Singh
  • 36,884
  • 5
  • 53
  • 68
Akash Gajbhiye
  • 335
  • 4
  • 17

1 Answers1

1

Once a layout has been drawn the to alter the dimension and shape, you have to call requestLayout()

so use

searchView.setOnSearchClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            v.getLayoutParams().width = 1800;
            v.invalidate(); // for redrawing 
            v.requestLayout(); // for dimension change 
        }
    });

For enclose use

searchView.setOnCloseListener(new SearchView.OnCloseListener() {
       @Override
       public boolean onClose() {
           searchView.requestLayout(); // make sure to declare search view outside oncreate or use local final variable
           // or this //findViewById(R.id.searchicon).requestLayout(); // for dimension change 
           return false;
       }
   });

Reference: Usage of forceLayout(), requestLayout() and invalidate()

Pavneet_Singh
  • 36,884
  • 5
  • 53
  • 68