我想在我的程序中更改线性布局的大小,而不是在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) {}
});
}
}
答案 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);