自定义对话框在Android 7.1.1上运行错误

时间:2017-11-13 04:42:15

标签: android

您正在使用android中的自定义对话框, 我的代码:

public void generarDialogoParametros(String titulo, boolean llamaNumero) {
    Dialog dialogo = new Dialog(context,R.style.AlertDialogTheme);
    dialogo.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialogo.setContentView(R.layout.dialogo_parametros);
    dialogo.setTitle(titulo);
    TextView spo2 = (TextView) dialogo.findViewById(R.id.editTextSPO2);
    TextView pulsobajo = (TextView) dialogo.findViewById(R.id.editTextPulsoAlto);
    TextView pulsoalto = (TextView) dialogo.findViewById(R.id.editTextPulsoBajo);
    Button guardar = (Button) dialogo.findViewById(R.id.btnAceptarParametros);
    Button cancelar = (Button) dialogo.findViewById(R.id.btnCancelarParametros);
    spo2.setText(preferencias.getSPO2() + "");
    pulsoalto.setText(preferencias.getPulsoAlto() + "");
    pulsobajo.setText(preferencias.getPulsoBajo() + "");
    guardarParametrosNuevos(guardar,cancelar, dialogo, spo2, pulsoalto, pulsobajo, llamaNumero);
    dialogo.show();
    dialogo.setCancelable(false);
}
android 4,5,6中的

就像:

enter image description here

但是在7 +

enter image description here

我不知道,我如何解决它可以帮助我?

1 个答案:

答案 0 :(得分:1)

使用下面的代码

以编程方式尝试设置对话框的高度和宽度
    public void generarDialogoParametros(String titulo, boolean llamaNumero) {
            Dialog dialogo = new Dialog(context,R.style.AlertDialogTheme);
            dialogo.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialogo.setContentView(R.layout.dialogo_parametros);
            Window window = dialogo.getWindow();
            window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
            window.setGravity(Gravity.CENTER);
            dialogo.setTitle(titulo);
            TextView spo2 = (TextView) dialogo.findViewById(R.id.editTextSPO2);
            TextView pulsobajo = (TextView) dialogo.findViewById(R.id.editTextPulsoAlto);
            TextView pulsoalto = (TextView) dialogo.findViewById(R.id.editTextPulsoBajo);
            Button guardar = (Button) dialogo.findViewById(R.id.btnAceptarParametros);
            Button cancelar = (Button) dialogo.findViewById(R.id.btnCancelarParametros);
            spo2.setText(preferencias.getSPO2() + "");
            pulsoalto.setText(preferencias.getPulsoAlto() + "");
            pulsobajo.setText(preferencias.getPulsoBajo() + "");
            guardarParametrosNuevos(guardar,cancelar, dialogo, spo2, pulsoalto, pulsobajo, llamaNumero);
            dialogo.show();
            dialogo.setCancelable(false);
        }