我正在尝试创建动态布局。我的布局是从JSON提供的。我需要做的是在一行中放置一个按钮和一个编辑文本字段。编辑文本字段应始终填充屏幕实际状态,按钮应仅为其文本宽度大小。该按钮可以放在编辑文本字段之前或之后。
代码明智我正在尝试下面:
for (int i = 0; i < jsonDataValue.size(); i++) {
System.out.println(jsonDataValue.get(i));
if (jsonDataViewType.get(i).toString().equals("editBox")) {
EditText editText = new EditText(context);
editText.setText(jsonDataValue.get(i));
editText.setWidth(LayoutParams.MATCH_PARENT);
editText.setHeight(LayoutParams.WRAP_CONTENT);
System.out.println("width: " + LayoutParams.MATCH_PARENT);
System.out.println("hight: " + editText.getHeight());
linearLayout.addView(editText);
System.out.println(linearLayout.getOrientation());
}
else if(jsonDataViewType.get(i).toString().equals("button")) {
Button button = new Button(context);
button.setText(jsonDataValue.get(i));
// button.setWidth(LayoutParams.WRAP_CONTENT);
linearLayout.addView(button);
}
}
我得到以下内容:
答案 0 :(得分:1)
请尝试以下更新:
if (jsonDataViewType.get(i).toString().equals("editBox")) {
EditText editText = new EditText(context);
editText.setText(jsonDataValue.get(i));
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.weight = 1.0f;
editText.setLayoutParams(params);
}