Android Studio更改LinearLayout大小

时间:2017-10-06 21:15:01

标签: android size android-linearlayout

我想在我的程序中更改线性布局的大小,而不是在xml文件本身中。我是初学者,也想在方法(public)之外声明我的变量并在方法中初始化它,就像我使用EditText和LinearLayout一样。

我试过这种方式,但它说:

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

但我不知道如何处理这个错误:(

我的代码到目前为止:

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) {}
        });
    }
}

1 个答案:

答案 0 :(得分:2)

尝试:

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));
    }
}

OR

layout_chat_input.setLayoutParams(layout_chat_input_params);