我正在制作一个自定义的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()
方法设置消息文本,对话框按钮将是可见的。
希望这会有所帮助。