对话fragragment按钮将屏幕API 24及以上推出



我正在制作一个自定义的DialogFragment,显示可选的数据列表。该列表太长了,无法在屏幕上放置而无需滚动。对于API 23,一切似乎都可以正常工作,但是当我在API 24 上测试时,对话fragment的按钮不再可见。我在AlertDialog上查看了缺少按钮|Android 7.0(Nexus 5X(,但这似乎不适用,因为当我减少列表中的内容量以使其都适合屏幕上时,我的按钮确实会显示出来。如何使我的按钮可见?

我的ongreatedialog((方法:

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    final View dialogView = View.inflate(getContext(), android.R.layout.select_dialog_multichoice, null);
    builder.setView(dialogView)
            .setTitle(R.string.muscle_groups)
            .setMultiChoiceItems(Exercise.MUSCLE_GROUPS, selectionTrackingArray, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    ...
                }
            })
            .setPositiveButton(R.string.affirmative, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    ...
                }
            })
            .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
    return builder.create();
}

按钮似乎已从屏幕上推开

让我知道是否还需要任何信息。

您是否碰巧使用setMessage()AlertDialog.Builder方法设置消息,尽管您的示例代码不使用它?

,因为如果您的内容不适合屏幕,请同时设置自定义视图和消息,请正如您所描述的。

要解决此问题,将您的消息添加到您的自定义视图中,并且不要使用setMessage()方法设置消息文本,对话框按钮将是可见的。

希望这会有所帮助。

最新更新