我们可以在Android警报对话框中设置垂直按钮吗



默认情况下,我们在警报对话框中获得两个或三个水平对齐的按钮。是否可以在警报对话框中使它们垂直对齐?

当然,您可以使用Dialog.setContentView()将对话框的内容设置为任意布局。

Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.yourLayoutId);
dialog.show();

使自己成为一个具有Vertical LinearLayout的布局文件,其中包含所需的按钮,并在对话框中调用setContentView(),传递布局文件的名称。

如果你在AlertDialog上是固定的,你可以用builder.setView() 做类似的事情

LayoutInflater inflater = (LayoutInflater) 
        getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.yourLayoutId,
        (ViewGroup) findViewById(R.id.yourLayoutRoot));
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setView(layout);
AlertDialog alertDialog = builder.create();
alertDialog.show();

自从API级别1以来,就有一个setItems()调用来执行此操作。除非您想更改项目的外观,否则没有理由创建自定义对话框。

CharSequence[] items =  {"Foo", "Bar", "FooBar"};
new AlertDialog.Builder(activity)
.setTitle("Choose a widget")
.setItems(items, new DialogInterface.OnClickListener()
{
     @Override
     public void onClick(DialogInterface dialog, int which)
     {
         switch(which)
         {
             case FOO:
             // foo case
             break;
             ....
         }
     }
}
.create().show();

最新更新