131 votes

changer la position du dialogue à l'écran

J'ai fait un simple AlertDialog dans mon activité :

 View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
                    .setView(view)  
                    .create();

infoDialog.show();
 

Avec le code ci-dessus, la boîte de dialogue apparaît au centre de l'écran.

Je me demande comment puis-je personnaliser la position de la boîte de dialogue pour l'afficher juste sous la barre d'actions supérieure? (Est-il possible de changer la gravité ou quelque chose du dialogue?) Et comment le faire en fonction de mon code ??

282voto

Aleks G Points 25412

J'ai utilisé ce code pour afficher la boîte de dialogue en bas de l'écran:

 Dialog dlg = <code to create custom dialog>;

Window window = dlg.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();

wlp.gravity = Gravity.BOTTOM;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);
 

Ce code empêche également Android de moduler l’arrière-plan de la boîte de dialogue, si vous en avez besoin. Vous devriez pouvoir changer le paramètre de gravité pour déplacer la boîte de dialogue

28voto

Ramesh Sudrasana Points 1399
 private void showPictureialog() {
    final Dialog dialog = new Dialog(this,
            android.R.style.Theme_Translucent_NoTitleBar);

    // Setting dialogview
    Window window = dialog.getWindow();
    window.setGravity(Gravity.CENTER);

    window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    dialog.setTitle(null);
    dialog.setContentView(R.layout.selectpic_dialog);
    dialog.setCancelable(true);

    dialog.show();
}
 

vous pouvez personnaliser votre boîte de dialogue en fonction des paramètres de gravité et de disposition changez les paramètres de gravité et de mise en page en fonction de vos besoins

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X