我正在为应用设计一个“约”菜单,并在选项菜单中使用以下代码来生成它:
case DIALOG_ABOUT:
builder = new AlertDialog.Builder(this);
Context context = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.about_dialog, null);
builder.setView(layout);
TextView title = new TextView(this);
title.setText(R.string.about_title);
title.setGravity(Gravity.CENTER);
title.setTextSize(20);
builder.setCustomTitle(title);
builder.setPositiveButton("OK", null);
dialog = builder.create();
break;
我为about菜单创建了两个不同的视图 - 水平和垂直视图。
垂直显示时,about菜单看起来很好,但是当水平显示时,文本的底部会被切断。我正在使用LayoutInflator和View控件而没有太多关于它们如何工作的知识,因此我假设它们目前正在填充一些Android指定的大小。
如何创建对话框以占据整个屏幕,或至少占据整个屏幕的90%?
编辑 - 我的布局如下所示:
垂直布局:
<ImageView
android:id="@+id/imageView1"
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/icon" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/game_name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/game_description"
android:textAppearance="?android:attr/textAppearanceMedium" />
横向布局:
<ImageView
android:id="@+id/imageView1"
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/icon" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/game_name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/game_description"
android:textAppearance="?android:attr/textAppearanceMedium" />
答案 0 :(得分:1)
您可以在对话框上调用以下内容填充整个空间。
dialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);