我对如下实现的自定义对话框有疑问:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle("Title");
dialogBuilder.setMessage("Message");
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
// Set an EditText view to get user input
EditText input = new EditText(this);
input.setHeight(LayoutParams.WRAP_CONTENT);
input.setWidth(LayoutParams.MATCH_PARENT);
layout.addView(input);
TextView text = new TextView(this);
text.setText("show some text here");
text.setHeight(LayoutParams.WRAP_CONTENT);
text.setWidth(LayoutParams.MATCH_PARENT);
//text.setHeight(50);
//text.setWidth(150);
text.setVisibility(TextView.VISIBLE);
layout.addView(text);
Button btn = new Button(this);
btn.setText("Button");
btn.setHeight(LayoutParams.WRAP_CONTENT);
btn.setWidth(LayoutParams.WRAP_CONTENT);
layout.addView(btn);
dialogBuilder.setView(layout);
dialogBuilder.setPositiveButton("Ok", null);
AlertDialog myDialog = dialogBuilder.create();
myDialog.show();
问题是TextView text
如果我在上面的代码中设置它的宽度和高度,它不会显示在对话框中。仅当我对属性(两条注释行)进行硬编码时才会出现,但这不是所需的行为。
此外,虽然 Button 的宽度设置为WRAP_CONTENT
,但它与屏幕一样大。
有人可以指出我在这里做错了什么吗?