我正在制作一个显示可选择的数据列表的自定义DialogFragment
。列表太长,无法滚动显示在屏幕上。对于API 23,一切似乎都运行正常,但是当我在API 24+上进行测试时,DialogFragment的按钮不再可见。我查看Missing buttons on AlertDialog | Android 7.0 (Nexus 5x),但这似乎不适用,因为当我减少列表中的内容量时,我的按钮会显示,因此它们都适合屏幕。如何让我的按钮可见?
我的onCreateDialog()方法:
@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();
}
Buttons appear to be pushed off the screen
如果需要更多信息,请告诉我。
答案 0 :(得分:0)
您是否碰巧使用setMessage()
AlertDialog.Builder
方法来设置消息,尽管您的示例代码不使用它?
因为如果您的内容不适合屏幕,则将自定义视图和消息同时设置为警告对话框构建器会产生副作用。
要解决此问题,请将您的消息添加到自定义视图,并且不要使用setMessage()
方法设置消息文本,对话框按钮将会显示。
希望这有帮助。
答案 1 :(得分:-1)
答案对我有用。 (我没有足够的积分来支持它,所以我只能使用新的答案。)特别是,我现在使用setTitle()而不是使用setMitage()。