如何在“警报”对话框中将“中性”按钮位置设置为居中而不是左侧

时间:2016-11-24 04:43:49

标签: android android-alertdialog

以下是我的代码,左侧显示确定 按钮

UIButton

3 个答案:

答案 0 :(得分:3)

经过许多Google搜索和学习默认的AlertDialog布局后,我发现neutral button-ve/+ve buttons之间的空格布局与地点" 1"在buttonBarLayout中的按钮。

因此,首先,我们需要移除该空间并使其具有可见性GONEinvisible还会让它在buttonBarLayout中占用空间)我们最好使用方法onShowListner,而不是在显示对话框之后执行:

 alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
        @Override
        public void onShow(DialogInterface dialog) {
            Button neutralButton = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL);
            LinearLayout view = (LinearLayout) neutralButtonOrAnyOtherBtnFromThe3Btns.getParent();
            Space space= (Space) view.getChildAt(1);
            space.setVisibility(View.GONE);
        }
 });

然后你可以根据需要设计臀部,或者如果你想在中立之前得到空间,你可以使用this question

答案 1 :(得分:1)

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("No product found");
builder.setCancelable(false);
builder.setNeutralButton(
            "Ok",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    ((MainActivity)getActivity()).fragment_Scan_call();
                }
            });
// Must call show() prior to fetching text view
    AlertDialog alert = builder.create();
    alert.show();

final Button neutralButton = alert.getButton(AlertDialog.BUTTON_NEUTRAL);
LinearLayout.LayoutParams neutralButtonLL = (LinearLayout.LayoutParams) neutralButton.getLayoutParams();
neutralButtonLL.gravity = Gravity.CENTER;
neutralButton.setLayoutParams(neutralButtonLL);

答案 2 :(得分:0)

BUTTON_NEUTRALBUTTON_NEGATIVEBUTTON_POSITIVE没有附加任何语义(除了实际名称之外),因此,如果您想简单地“移动”按钮位置将事件监听器和标签翻转到所需位置上的任意按钮。

即鉴于您的原始代码为:

builder.setNeutralButton("Save Draft", saveDraftListener)
builder.setNegativeButton("Cancel", cancelListener)
builder.setPositiveButton("Send", sendListener)

您可以将其翻转至:

// flip neutral and negative buttons
builder.setNeutralButton("Cancel", cancelListener)
builder.setNegativeButton("Save Draft", saveDraftListener)
builder.setPositiveButton("Send", sendListener)    

以真正的“矮胖”的方式,任何按钮都可以用于您想要的任何东西,包括将BUTTON_NEGATIVE用作确定,将BUTTON_POSITIVE用作取消