Android: как создать диалог без заголовка? - PullRequest
260 голосов
/ 15 апреля 2010

Я пытаюсь создать собственный диалог в Android. Я создаю свой диалог так:

dialog = new Dialog(this);
dialog.setContentView(R.layout.my_dialog);

Все работает нормально, кроме названия Диалога. Даже если я не установлю заголовок диалога, всплывающее окно диалога будет иметь пустое место в позиции диалога.

Есть ли способ скрыть эту часть диалога?

Я пробовал это с AlertDialog, но кажется, что макет настроен неправильно:

LayoutInflater inflater = 
    (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.map_dialog, null);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);

// dialog = new Dialog(this);
// dialog.setContentView(R.layout.map_dialog);

dialog = builder.create();

((TextView) dialog.findViewById(R.id.nr)).setText(number);

Если я использую этот код, я получаю нулевое исключение указателя в последней строке. Диалог не является нулевым, поэтому TextView, который я пытаюсь получить, не существует.
Если я раскомментирую часть, в которой я использую конструктор диалогов, все будет хорошо, но для заголовка над макетом диалогового окна.

Ответы [ 25 ]

6 голосов
/ 12 марта 2013

Не знаю, актуален ли этот вопрос, но в моем случае, когда я переключился с Dialog на DialogFragment,

requestWindowFeature(Window.FEATURE_NO_TITLE);

был не вариант, но я мог бы использовать

setStyle(STYLE_NO_TITLE, 0);

вместо того же результата.

4 голосов
/ 05 августа 2011

Установить заголовок на пустую строку, используя builder.

    Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("");
...
    builder.show();
3 голосов
/ 02 октября 2013

Думаю, вы можете просто использовать это сейчас:

AlertDialog dialog = new AlertDialog.Builder(this)
  .setView(view)
  .setTitle("")
  .create()
3 голосов
/ 03 июля 2011

установить атрибут "гравитация" во всем диалоге на "центр". Затем вам нужно будет переопределить этот параметр для всех дочерних компонентов в диалоговом окне, которое вы не хотите центрировать.

3 голосов
/ 07 июня 2012

Если мы просто используем диалоговое окно без setTitle(), то сработает ли это при удалении пробела?

mUSSDDialog = new AlertDialog.Builder(context).setView(dialogView)
.setPositiveButton(R.string.send_button,DialogListener)
.setNegativeButton(R.string.cancel,DialogListener)
.setCancelable(false).create();
3 голосов
/ 15 февраля 2012
dialog=new Dialog(YourActivity.this, 1);  // to make dialog box full screen with out title.
dialog.setContentView(layoutReference);
dialog.setContentView(R.layout.layoutexample);
3 голосов
/ 29 февраля 2012

в XML используйте тему

android:theme="@android:style/Theme.NoTitleBar"
2 голосов
/ 04 августа 2015

При использовании AlertDialog, без использования setTitle() заголовок исчезает

2 голосов
/ 09 января 2015
public static AlertDialog showAlertDialogWithoutTitle(Context context,String msg) 
     {
      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
      alertDialogBuilder.setMessage(msg).setCancelable(false)
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {

         }
        });

       return alertDialogBuilder.create(); 
     }
2 голосов
/ 14 марта 2012
ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", 
                             "Loading. Please wait...", true);

создает диалог без заголовка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...