Lorsque j'utilise dans la mise en page, qui spécifie cette boîte de dialogue Android:layout_width="match_parent"
J'obtiens cette boîte de dialogue:
J'ai besoin d'un dialogue qui sera plus large. Des idées?
Pour ce faire, saisissez l'objet Window
que la boîte de dialogue utilise et réinitialisez la largeur. Voici un exemple simple:
//show the dialog first
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("Test Dialog")
.setMessage("This should expand to the full width")
.show();
//Grab the window of the dialog, and change the width
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialog.getWindow();
lp.copyFrom(window.getAttributes());
//This makes the dialog take up the full width
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(lp);
Voici le résultat final. Notez qu'il y a beaucoup plus de style que vous pouvez faire dans la boîte de dialogue si vous devez affiner les choses (comme changer l'arrière-plan, etc.). Lorsque j'ai dû le faire dans le passé, j'utilise généralement cette méthode et personnalise la disposition utilisée dans la boîte de dialogue avec setView()
sur la classe de générateur.
Une autre façon de résoudre ce problème consiste à utiliser:
import Android.support.v7.app.AlertDialog;
au lieu de:
import Android.app.AlertDialog;