2015-02-23 9 views
16

Podążam za kodem this, aby utworzyć niestandardowe okno dialogowe, ale nie rozumiem, jak usunąć pasek tytułu okna dialogowego?Jak usunąć okno dialogowe z ostrzeżeniem Pasek tytułu

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; 

     ....... 

} 

wiem usunąć tytuł obszarze okna Alert, musimy użyć requestWindowFeature(Window.FEATURE_NO_TITLE);

Ale nie wiem, gdzie mam umieścić powyżej linii?

+0

Wystarczy usunąć setTitle (-), a następnie nie ma paska tytułu. –

+1

Użyj tego, dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); przed dialog.setContentView (R.layout.logindialog); –

Odpowiedz

22

Jeśli nie chcesz paska tytułu w oknie dialogowym alertu, po prostu usuń poniższy wiersz z kodu.

dialogbuilder.setTitle("Login"); 

Jeśli nadal nie działa, dodaj poniższy wiersz.

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

co, jeśli chcę, aby mój tekst wyglądał tak samo w obu (telefon i tablet)? – Sun

+0

Można również utworzyć niestandardowe okno dialogowe. –

+0

hej bro tym razem nie mówię o niestandardowym oknie dialogowym alertu, jestem zaniepokojony tym, jak wyświetlać tekst zawsze o tym samym rozmiarze w obu urządzeniach telefony i tablety – Sun

19

Zastosowanie dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); przed dialog.setContentView(R.layout.logindialog); przez robi więc będzie można ukryć Tytuł The Dialog „s.

+0

To zadziałało dla mnie. – MarsAndBack

2

prostu usunąć

dialogbuilder.setTitle("Login"); 
-4

Użyj tego

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

"dialogbuilder.requestWindowFeature" nie jest obsługiwany. –

+0

Okno dialogu = nowe okno dialogowe (kontekst); dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); –

+0

@AshishJohn: Przeczytaj całe pytanie i tytuł, zanim zaczniesz komentować każdy śmieć! Alarm Dialog i Dialog to dwie różne klasy. –

2

Spróbuj ::

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

Korzystając dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

3

Najpierw usunąć tę linię:

dialogbuilder.setTitle("Login"); 

Następnie dodać ten jeden:

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
0

nie mogłem znaleźć .requestWindowFeature z AlertDialog Builder.

Jeśli nie chcesz mieć tytuł przy konstruowaniu okno ostrzegawcze z Builder używać new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);

0

Ostatecznie na Motorola Droid Razr M (AOS 4.4) smartphone z tych metod nie działa, a ja wierzę, że są inne smatfony takie jak te istnieją na rynku. Jedynym efektem zdobyte:

 setTitle(null); 
     setCustomTitle(null); 

jest to, że tytuł nie zawiera tekstu, ale jego widok nadal utrzymuje się w widoku dialogowym (wygląda jak pusty widokiem na wierzchu). Tak więc jedyny sposób, jaki znalazłem, oparty jest na: 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); 
      } 
     } 
Powiązane problemy