警报对话框或自定义警报对话框的大小

时间:2012-01-12 13:34:05

标签: android

我正在为10.1的所有平板电脑创建我的应用程序,现在我在三星galaxy选项卡上尝试这个。 我已经完成了所有这些部分,但警告对话框对于平板电脑尺寸来说太小了。 我还创建了自定义警报对话框但看起来不太好。 所以告诉我,如果是,那么我可以更改默认警报对话框的大小。

OR

如何创建看起来像默认警报对话框的自定义提醒对话框。

感谢。

2 个答案:

答案 0 :(得分:13)

请参阅this one

根据Android平台开发人员Dianne Hackborn在this讨论组帖子中的说法,Dialogs将他们Window的顶级布局宽度和高度设置为WRAP_CONTENT。要使Dialog更大,可以将这些参数设置为FILL_PARENT。

演示代码:

AlertDialog.Builder adb = new AlertDialog.Builder(this);
Dialog d = adb.setView(new View(this)).create();
// (That new View is just there to have something inside the dialog that can grow big enough to cover the whole screen.)

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(d.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
d.show();
d.getWindow().setAttributes(lp);

请注意,在显示对话框后设置属性。系统在设置时很挑剔。 (我猜布局引擎必须在第一次显示对话框时设置它们。)

最好通过扩展Theme.Dialog来做到这一点,然后你就不必玩一个关于何时调用setAttributes的猜谜游戏。 (尽管让对话框自动采用适当的浅色或深色主题或Honeycomb Holo主题还有一些工作要做。可以根据http://developer.android.com/guide/topics/ui/themes.html#SelectATheme完成)

答案 1 :(得分:0)

alert dialog框是一个小窗口,提示用户一些信息来做出决定或获取其他信息。警报对话框android用于显示带有肯定(确定)和否定(取消)按钮的消息。它仅用于提供和询问用户有关他们选择继续还是终止的信息。

为自定义警报对话框创建自定义视图,并将其命名为list_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/head"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:background="@color/colorAccent"
        android:text="TechNxt Code Labs"
        android:textAlignment="center"
        android:textColor="#fff"
        android:textStyle="bold"
        android:textSize="30sp"/>
    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="375dp"
        android:src="@drawable/patientcare"/>
</LinearLayout>

现在,我们在android中设置自定义“警报对话框”视图:

final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.list_layout,null);
TextView tv = (TextView)view.findViewById(R.id.head);
ImageView iv = (ImageView)view.findViewById(R.id.iv);
builder.setView(view);
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
          // Dismiss the dialog here
         dialog.dismiss();
    }
});
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
          // Add ok operation here
          }
});

builder.show();

查看此答案:How to create a custom alert dialog in android ?

快乐编码...