2015-02-23 2 views
16

Я следую this код для создания настраиваемого диалога, но я не получаю, как удалить панель заголовка диалога?Как удалить диалоговое окно предупреждения Строка заголовка

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; 

     ....... 

} 

Я знаю, чтобы удалить область заголовка диалогового окна оповещения, мы должны использовать requestWindowFeature(Window.FEATURE_NO_TITLE);

Но не знаю, где я должен поставить выше линии?

+0

Просто удалите SETTITLE (-), то нет заголовка. –

+1

Используйте это, dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); до dialog.setContentView (R.layout.logindialog); –

ответ

22

Если вы не хотите, чтобы заголовок отображался в диалоговом окне предупреждения, просто удалите строку ниже кода.

dialogbuilder.setTitle("Login"); 

Если все еще не работает, добавьте ниже строку.

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

Что делать, если я хочу, чтобы мой текст выглядел одинаково для обоих (телефон и планшет)? – Sun

+0

Вы также можете создать собственный диалог. –

+0

hey bro на этот раз я не говорю о настраиваемом диалоговом окне оповещений, я беспокоюсь о том, как показывать текст всегда одинакового размера в устройствах телефонов и планшетах – Sun

19

Использование dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); перед тем dialog.setContentView(R.layout.logindialog); Поступая таким образом, вы будете в состоянии скрыть титул Dialog «s.

+0

Это сработало для меня. – MarsAndBack

2

просто удалить

dialogbuilder.setTitle("Login"); 
-4

Используйте этот

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

«dialogbuilder.requestWindowFeature» не поддерживается. –

+0

Диалог dialog = новый диалог (контекст); dialog.requestWindowFeature (Window.FEATURE_NO_TITLE); –

+0

@AshishJohn: прочитайте полный вопрос и заголовок, прежде чем комментировать любой мусор! Диалог оповещений и диалог - это два разных класса. –

2

Попробуйте ::

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

Использование dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

3

Сначала удалите эту строку:

dialogbuilder.setTitle("Login"); 

Затем добавьте этот:

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE); 
0

Я не мог найти .requestWindowFeature с AlertDialog Builder.

Если вы не хотите, чтобы иметь заголовок при построении Dialog оповещения с Builder, используйте new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);

0

В конце концов на Motorola Droid Razr M (AOS 4.4) смартфон эти подходы не работают, и я считаю, что есть на рынке существуют и другие подобные смартфоны. Единственный эффект получил от:

 setTitle(null); 
     setCustomTitle(null); 

что название не имеет текста, но его точка зрения по-прежнему сохраняется в диалоговом (выглядит как пустой взгляд на вершине). Таким образом, единственный способ, которым я нашел основывается на 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); 
      } 
     } 
Смежные вопросы