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 ]

1 голос
/ 31 января 2017

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

    Dialog dialog = new Dialog(getActivity());
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    dialog.setCancelable(true);
    dialog.setContentView(R.layout.image_show_dialog_layout);
1 голос
/ 27 июня 2015

Вот что вы можете сделать с AlertBuilder, чтобы название исчезло:

TextView title = new TextView(this);
title.setVisibility(View.GONE);
builder.setCustomTitle(title);
1 голос
/ 08 сентября 2014

Вы можете сделать это без использования AlertDialog, определив новый класс, который расширяется от Dialog Класс, подобный этому:

public class myDialog extends Dialog {
    public myDialog(Context context) {
        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
    }
}
1 голос
/ 08 декабря 2012

После нескольких взломов я получил это на работу:

            Window window = dialog.getWindow();
            View view = window.getDecorView();
            final int topPanelId = getResources().getIdentifier( "topPanel", "id", "android" );
            LinearLayout topPanel = (LinearLayout) view.findViewById(topPanelId);
            topPanel.setVisibility(View.GONE);
0 голосов
/ 01 марта 2019

dialog_custom .requestWindowFeature (Window.FEATURE_NO_TITLE);

это удалит заголовок из диалога cutsom.

Примечание: добавьте эти строки перед добавлением контента. Например,

     dialog_custom = Dialog(activity!!)
    dialog_custom.requestWindowFeature(Window.FEATURE_NO_TITLE)
    dialog_custom.setContentView(R.layout.select_vehicle_type)
    dialog_custom.setCanceledOnTouchOutside(false)
    dialog_custom.setCancelable(true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...