2015-02-23 5 views
16

Ich befolge den Code this, um einen benutzerdefinierten Dialog zu erstellen, aber ich erhalte keine Anweisungen zum Entfernen der Titelleiste des Dialogfelds?So entfernen Sie den Alarmdialog Titelleiste

AlertDialog alertDialog; 

    @Override 
    protected Dialog onCreateDialog(int id) { 

     AlertDialog dialogDetails = null; 

     switch (id) { 
     case DIALOG_LOGIN: 

     LayoutInflater inflater = LayoutInflater.from(this); 
     View dialogview = inflater.inflate(R.layout.dialog_layout, null); 

      AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this); 
      dialogbuilder.setTitle("Login"); 
      dialogbuilder.setView(dialogview); 
      dialogDetails = dialogbuilder.create(); 

      break; 
      } 

     return dialogDetails; 
    } 

    @Override 
    protected void onPrepareDialog(int id, Dialog dialog) { 

     switch (id) { 
     case DIALOG_LOGIN: 
     alertDialog = (AlertDialog) dialog; 

     ....... 

} 

Ich weiß Titelbereich des Alert-Dialogs zu entfernen, haben wir requestWindowFeature(Window.FEATURE_NO_TITLE);

Aber wissen nicht, wo ich über die Linie platzieren müssen, um benutzen?

+0

Nur setTitle entfernen (-), dann gibt es keine Titelleiste. –

+1

Verwenden Sie dies, dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); vor dialog.setContentView (R.layout.logindialog); –

Antwort

22

Wenn die Titelleiste nicht im Alarmdialog angezeigt werden soll, entfernen Sie einfach die untere Zeile aus dem Code.

dialogbuilder.setTitle("Login"); 

Wenn immer noch nicht funktioniert dann fügen Sie unter Zeile.

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

Was ist, wenn ich möchte, dass mein Text in beiden (Telefon und Tablet) gleich aussieht? – Sun

+0

Sie können auch einen benutzerdefinierten Dialog erstellen. –

+0

hey bro dieses Mal spreche ich nicht über benutzerdefinierten Warnungsdialog, ich bin Sorge darüber, wie man Text immer gleicher Größe in beiden Geräten zeigt, Telefone und Tabletten – Sun

19

Verwenden dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); vor dialog.setContentView(R.layout.logindialog); Dadurch können Sie die Dialog ‚s Titel verstecken.

+0

Das hat bei mir funktioniert. – MarsAndBack

2

nur

dialogbuilder.setTitle("Login"); 
-4

Verwenden entfernen diese

AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this); 
      dialogbuilder .requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialogbuilder.setView(dialogview); 
      dialogDetails = dialogbuilder.create(); 
+1

"dialogbuilder.requestWindowFeature" wird nicht unterstützt. –

+0

Dialogdialog = neuer Dialog (Kontext); dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); –

+0

@AshishJohn: Lesen Sie die vollständige Frage und den Titel, bevor Sie anythhng Quatsch kommentieren! Warnungsdialog und -dialog sind zwei verschiedene Klassen –

2

starten ::

AlertDialog.Builder builder; 
AlertDialog alertDialog; 

Context mContext = getApplicationContext(); 
LayoutInflater inflater = (LayoutInflater) 
     mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.custom_dialog, 
     (ViewGroup) findViewById(R.id.layout_root)); 

TextView text = (TextView) layout.findViewById(R.id.text); 
text.setText("Hello, this is a custom dialog!"); 
ImageView image = (ImageView) layout.findViewById(R.id.image); 
image.setImageResource(R.drawable.android); 

builder = new AlertDialog.Builder(mContext); 
builder.setView(layout); 
alertDialog = builder.create(); 

Refer here

4

Verwenden dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

3

Zuerst entfernen Sie diese Zeile:

dialogbuilder.setTitle("Login"); 

Dann dieses man hinzufügen:

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
0

ich nicht .requestWindowFeature mit Alertdialog Builder finden konnten.

Wenn Sie keinen Titel haben wollen, wenn sie mit einem Builder eine Alert-Dialog Konstruktion, new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);

0

Schließlich auf einem Motorola Droid Razr M (AOS 4.4) Smartphone verwenden, um diese Ansätze nicht funktioniert und ich glaube, es gibt andere Smartphones wie diese existieren auf einem Markt. Der einzige Effekt gewonnen aus:

 setTitle(null); 
     setCustomTitle(null); 

ist dieser Titel keinen Text hat aber seine Sicht bleibt noch in der Dialogansicht (sieht aus wie ein leerer Blick auf einem oben). So ist die einzige Art, wie ich gefunden basiert auf this answer:

 int titleId = getContext().getResources().getIdentifier("alertTitle", "id", "android"); 
     if (titleId > 0) { 
      View dialogTitle = findViewById(titleId); 
      if (dialogTitle != null) { 
       ((View)dialogTitle.getParent().getParent()).setVisibility(View.GONE); 
      } 
     }