2016-04-22 4 views
1

In der Material-Design documentation heißt es der Inhalt Padding des Dialogs Text sollte 24dp sein, aber wenn Sie eine einfache AlerDialog mit folgendem Code erstellen gibt es keine unteren Auffüllen, wie Sie auf dem Screenshot sehen können.AlertDialog verwendet Materialdesign nicht korrekt?

AlertDialog

public class MainActivity extends android.support.v7.app.AppCompatActivity { 

     @Override 
     public void onCreate(final Bundle savedInstanceState) { 

     final android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(this); 
     builder.setTitle("title"); 
     builder.setMessage("asdf asöldkfasölkdf öasdklfjöa aösdkföa sdköf masjdö lmasjködf mjaösk maöskd mjaösk fmaöskmaöskmföasföalk maölskjd möaslkd möas mjaös m").setCancelable(true) 
      .setNeutralButton(R.string.ok, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(final DialogInterface dialog, final int id) { 
         dialog.cancel(); 
        } 
       }).setOnCancelListener(new OnCancelListener() { 
       @Override 
       public void onCancel(final DialogInterface dialog) { 
        MainActivity.sMessageDialogId = 0; 
       } 
     }); 
     builder.show(); 
    } 
    } 
+0

Verwenden android.support.v7.app.AlertDialog anstelle von Android zu überprüfen .app.AlertDialog. Überprüfen Sie http://stackoverflow.com/questions/26455919/material-design-not-styling-alert-dialogs/29810469#29810469 –

+0

Es ist bereits die Support-Version – David

+0

So lächerlich, dass so viel von dem Framework selbst nicht folgt Material Richtlinien. Haben Sie jemals eine Lösung gefunden, ohne eine benutzerdefinierte Ansicht für den Dialoggenerator festlegen zu müssen? Viele der anderen Padding-Dimensionen entsprechen nicht ganz den Richtlinien. –

Antwort

0

Versuchen Sie, diese builder.setPadding(24, 24, 24, 24);

+0

Ich weiß, dass das funktionieren könnte, aber warum wird der Standard nicht bereits implementiert? – David

+0

Auf welche API bezieht sich 'builder.setPadding'? Ich sehe das nicht in den 'AlertDialog.Builder' -Dokumenten. –

1

Bitte verwenden Sie die den Code nach der Versionskompatibilität,

AlertDialog.Builder builder; 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     builder = new android.app.AlertDialog.Builder(getActivity(),android.R.style.Theme_Material_Light_Dialog_Alert); 
} else { 
     builder = new android.app.AlertDialog.Builder(getActivity()); 
} 
+0

Sie sollten android.support.v7.app.AlertDialog verwenden. –

+0

Ich rufe den Code innerhalb einer android.support.v7.app.AppCompatActivity; und für diese Aktivität kann nur Theme.AppCompat.xy verwendet werden – David