AlertDialog仅在Android上显示中性按钮<;7

AlertDialog仅在Android上显示中性按钮<;7,android,android-alertdialog,Android,Android Alertdialog,我制作了一个AlertDialog,它有三个按钮(正、负、中性),在我的手机(Android 7.0)上测试时效果很好,但我有几个朋友(Android 5.0和6.0)测试过,他们只显示了中性按钮 代码如下: AlertDialog.Builder isSelfieBuilder = new AlertDialog.Builder(context); isSelfieBuilder.setTitle("Choose picture orientation."); // Set up the b

我制作了一个
AlertDialog
,它有三个按钮(正、负、中性),在我的手机(Android 7.0)上测试时效果很好,但我有几个朋友(Android 5.0和6.0)测试过,他们只显示了中性按钮

代码如下:

AlertDialog.Builder isSelfieBuilder = new AlertDialog.Builder(context);
isSelfieBuilder.setTitle("Choose picture orientation.");

// Set up the buttons
isSelfieBuilder.setPositiveButton("Selfie", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        //Do something
    }
});
isSelfieBuilder.setNeutralButton("Landscape", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        //Do something
    }
});
isSelfieBuilder.setNegativeButton("Portrait", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        //Do something
    }
});
final AlertDialog picTypeDialog = isSelfieBuilder.create();
picTypeDialog.show();

final Button positiveButton = picTypeDialog.getButton(AlertDialog.BUTTON_POSITIVE);
LinearLayout.LayoutParams positiveButtonLL = (LinearLayout.LayoutParams) positiveButton.getLayoutParams();
positiveButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT;
positiveButton.setLayoutParams(positiveButtonLL);

final Button neutralButton = picTypeDialog.getButton(AlertDialog.BUTTON_NEUTRAL);
LinearLayout.LayoutParams neutralButtonLL = (LinearLayout.LayoutParams) neutralButton.getLayoutParams();
neutralButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT;
neutralButton.setLayoutParams(neutralButtonLL);

final Button negativeButton = picTypeDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
LinearLayout.LayoutParams negativeButtonLL = (LinearLayout.LayoutParams) negativeButton.getLayoutParams();
negativeButtonLL.width = ViewGroup.LayoutParams.MATCH_PARENT;
negativeButton.setLayoutParams(negativeButtonLL);
有人知道我为什么只把空档按钮放在那里吗?我尝试删除对齐部分(在
.show()
之后的所有内容),但得到了相同的结果。我正在使用API 21(5.0)在模拟器上进行测试,我遇到了同样的问题。

因此,我“修复”这一问题的方法是完全禁用:

final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Choose picture orientation.")
               .setPositiveButton("Selfie", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        //doSomething
                    }
                })
                .setNeutralButton("Landscape", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        //doSomething
                    }
                })
                .setNegativeButton("Portrait", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        //doSomething
                    }
                });
        AlertDialog dialog = builder.create();
        dialog.show();
AlertDialog picTypeDialog = isSelfieBuilder.create();
picTypeDialog.show();
并简单地用

isSelfieBuilder.show();

现在,它在所有设备上都能正常工作,即使按钮之间的间距不完美,而且我无法在没有
警报对话框的情况下编辑按钮布局

确定它与android版本有关吗?可能是屏幕尺寸太大造成的。。。。