2015-02-23 15 views
16

Sto seguendo il codice this per creare una finestra di dialogo personalizzata ma non riesco a ottenere come rimuovere la barra del titolo della finestra di dialogo?Come rimuovere la finestra di dialogo di avviso Barra del titolo

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; 

     ....... 

} 

So per rimuovere area del titolo della finestra di avviso, dobbiamo usare requestWindowFeature(Window.FEATURE_NO_TITLE);

ma non so dove devo mettere sopra la linea?

+0

Basta rimuovere setTitle (-), quindi non vi è alcuna barra del titolo. –

+1

Utilizzare this, dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); prima dialog.setContentView (R.layout.logindialog); –

risposta

22

Se non si desidera la barra del titolo nella finestra di dialogo di avviso, rimuovere semplicemente la riga inferiore dal codice.

dialogbuilder.setTitle("Login"); 

Se ancora non funziona, aggiungere la riga seguente.

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

cosa devo fare se il mio testo deve apparire identico in entrambi (telefono e tablet)? – Sun

+0

È anche possibile creare una finestra di dialogo personalizzata. –

+0

hey fratello questa volta non sto parlando di finestra di avviso personalizzata, sono preoccupato su come mostrare il testo sempre della stessa dimensione in entrambi i telefoni cellulari e tablet – Sun

19

Usa dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); prima dialog.setContentView(R.layout.logindialog); in questo modo si sarà in grado di nascondere il titolo 's il Dialog.

+0

Questo ha funzionato per me. – MarsAndBack

2

sufficiente rimuovere

dialogbuilder.setTitle("Login"); 
-4

Utilizzare questa

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

"dialogbuilder.requestWindowFeature" non è supportato. –

+0

Dialogo di dialogo = nuova finestra di dialogo (contesto); dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); –

+0

@AshishJohn: Leggi l'intera domanda e il titolo prima di commentare qualsiasi tipo di immondizia! Alert Dialogue e Dialogue sono due classi diverse –

2

Prova questo ::

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

Usa dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

3

Prima rimuovere questa linea:

dialogbuilder.setTitle("Login"); 

Quindi aggiungere questo:

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
0

non riuscivo a trovare .requestWindowFeature con AlertDialog Builder.

Se non si desidera avere un titolo quando si costruisce una finestra di avviso con un costruttore, utilizzare new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);

0

Alla fine su un Motorola Droid Razr M (AOS 4.4) smartphone questi approcci non funziona e credo che ci sono altri smatphone come questo esistono su un mercato. L'unico effetto acquisita:

 setTitle(null); 
     setCustomTitle(null); 

è che il titolo non ha alcun testo, ma la sua vista persiste nella vista finestra di dialogo (si presenta come una visione vuoto in una parte superiore). Quindi l'unico modo che ho trovato è basato su 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); 
      } 
     } 
Problemi correlati