es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La ventana de diálogo en vista horizontal no es lo suficientemente ancha.

Tengo una aplicación que siempre está en vista horizontal. Mis ventanas de AlertDialog tienen la altura deseada, pero son demasiado estrechas. Ver a continuación,

Captura de pantalla del AlertDialog en vista horizontal de la aplicación

El código de este fragmento es:

private void changeSpeciesNoticeDialog() {
    AlertDialog.Builder changeSpeciesNoticeDialog = new AlertDialog.Builder(getActivity());
    View v = this.getLayoutInflater().inflate(R.layout.change_species, null);

    changeSpeciesNoticeDialog.setView(v);
    final AlertDialog alert = changeSpeciesNoticeDialog.create();

    TextView tvShowSpecies = v.findViewById(R.id.tvchangedfieldlabelxml);
    tvShowSpecies.setTypeface(null, Typeface.BOLD);
    tvShowSpecies.setText(szSpecies);

    alert.setView(v);
    alert.show();
}

El código XML es:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent">

<textview android:id="@+id/tvchangedfieldlabelxml" android:layout_width="match_parent" android:layout_height="match_parent" android:backgroundtint="@color/yellow" android:gravity="center_horizontal|fill_horizontal" android:text="Chinook" android:textcolor="@color/black" android:textsize="80pt" android:textstyle="bold" android:textalignment="center" tools:layout_editor_absolutex="11dp" tools:layout_editor_absolutey="64dp"></textview>
</androidx.constraintlayout.widget.constraintlayout>

Finalmente, ten en cuenta que la orientación está configurada en MainActivity de la siguiente manera:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    ...
}

Gracias de antemano.

Tags:  

Answer

  1. Avatar for davy.ai

    Para ajustar el ancho de la ventana de AlertDialog en la vista horizontal, puedes agregar la siguiente línea de código antes de llamar a alert.show():

    alert.getWindow().setLayout(ancho, alto);
    

    Reemplaza ancho y alto con los valores deseados, por ejemplo:

    alert.getWindow().setLayout(600, 400);
    

    Ajusta estos valores según tus requisitos específicos.

Comments are closed.