Android 对话框没有焦点

时间:2021-06-10 02:24:00

标签: android android-alertdialog android-dialogfragment

我有一个关于 Android 对话框的问题,大部分问题出现在三星设备上,我不确定其他设备是否有同样的问题。

显示对话框(AlertDialog 或 DialogFragment)时,它没有焦点,我无法单击对话框上的任何内容。似乎重点仍然是创建对话框的活动或片段,对话框下方的活动/片段对我的触摸事件有响应。

我用它来创建一个 AlertDialog

new AlertDialog.Builder(activity)
        .setTitle(R.string.about_title)
        .setMessage(buildAppInfo())
        .setNegativeButton(R.string.app_ok, (dialog, which) -> dialog.dismiss())
        .show());

这是我的 DialogFragment 类:

public class MyDialog extends DialogFragment {

    private MyDialogBinding binding;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog_NoActionBar_MinWidth);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        binding = DataBindingUtil.inflate(inflater, R.layout.my_dialog, container, false);
        binding.tvTitle.setText(R.string.dialog_title);
        binding.tvMessage.setText(R.string.dialog_content);

        binding.btnCancel.setOnClickListener(v -> dismiss());

        return binding.getRoot();
    }


    @Override
    public void show(@NonNull FragmentManager manager, String tag) {
        if (!isAdded() && null == manager.findFragmentByTag(tag)) {
            super.show(manager, tag);
        }
    }

}

并使用它来创建一个 DialogFragment

private final MyDialog dialog = new MyDialog();
dialog.show(getChildFragmentManager(), "");

函数 setCancelableOnTouchOutside 不起作用。这个问题有时会发生,当它发生时,我必须重新启动我的应用程序。非常感谢您的帮助。

0 个答案:

没有答案