2017-10-06 21 views
2

Je voudrais changer la taille de ma mise en page linéaire dans mon programme pas dans le fichier xml lui-même. Je suis un débutant et j'aimerais aussi déclarer ma variable en dehors d'une méthode (public) et l'initialiser dans la méthode, comme je l'ai fait avec EditText et LinearLayout.Android Studio modifier LinearLayout taille

Je l'ai essayé de cette façon, mais il dit:

Error:(47, 81) error: incompatible types: android.view.ViewGroup.LayoutParams cannot be converted to android.widget.LinearLayout.LayoutParams 

Mais je ne sais pas quoi faire avec cette erreur :(

Mon code à ce jour:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 


    public EditText input_chat; 
    public LinearLayout layout_chat_input; 
    public LinearLayout.LayoutParams layout_chat_input_params; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Toast.makeText(getApplicationContext(),"onCreate",Toast.LENGTH_SHORT).show(); 

     input_chat = (EditText) findViewById(R.id.input_chat); 
     layout_chat_input = (LinearLayout) findViewById(R.id.layout_chat_input); 
     layout_chat_input_params = new LinearLayout.LayoutParams(layout_chat_input.getLayoutParams()); 

     input_chat.addTextChangedListener(new TextWatcher() 
     { 

      public void onTextChanged(CharSequence s, int start, int before, int count) 
      { 
       if (input_chat.getLineCount() > 0 && input_chat.getLineCount() < 5) 
       { 

        layout_chat_input_params = layout_chat_input.getLayoutParams(); 
        layout_chat_input.setLayoutParams(); 
       } 
      } 

      public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
      public void afterTextChanged(Editable s) {} 
     }); 
    } 
} 

Répondre

2

Essayez :

public void onTextChanged(CharSequence s, int start, int before, int count){ 

    if (input_chat.getLineCount() > 0 && input_chat.getLineCount() < 5){ 
     layout_chat_input.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
    } 
} 

OU

layout_chat_input.setLayoutParams(layout_chat_input_params);