Material design Spinner using TextInputLayout.OutlinedBox styling

前端 未结 8 1189
暗喜
暗喜 2021-02-05 11:31

I am currently using Material Design TextInputLayout OutlinedBox as shown below:

        

        
8条回答
  •  不要未来只要你来
    2021-02-05 11:57

    From the other answers, "AutoCompleteTextView" is the answer but it does not do the same as a spinner does.

    Here is my solution. Just put normal edittext inside TextInputLayout and make this editText disabled for inputs. And put a 0dp,0dp spinner for normal spinner working.

    Don't make spinner visibility=gone, because if it's gone, spinner listener does not work

    layout.xml

      
    
            
    
        
    
        
    

    java code

    set click listener to edittext for trigger spinner click

    findViewById(R.id.editText).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
        
                        spinner.performClick();
                    }
                });
    

    in spinner listener, set edittext text from selected item,

      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    
                @Override
                public void onItemSelected(AdapterView parent, View view, int position, long id) {
    
                    selectedCity= (City) parent.getAdapter().getItem(position);
    
                    editText.setText(selectedCity.getScreenText());
    
                    RDALogger.debug("selectedObject " + selectedCity);
                }
    
                @Override
                public void onNothingSelected(AdapterView parent) {
    
                }
            });
    

    and the result view

提交回复
热议问题