Диалоговое окно Android: удаление заголовка

У меня странное поведение, я не могу определить источник.

У меня есть приложение с классическим

requestWindowFeature(Window.FEATURE_NO_TITLE); 

Для удаления заголовка / строки состояния.

Затем я создаю диалоговое окно, позволяющее пользователю вводить информацию (имя и т. Д.),

С физической клавиатурой никаких проблем, но когда я использую виртуальную клавиатуру, у меня странное поведение:

Каждый раз, когда я нажимаю клавишу на виртуальной клавиатуре, заголовок / строка состояния снова появляется, когда все раскладки клавиатуры вокруг снова исчезают (как и анимация при запуске приложения)

Вот какой код:

  dialog = new Dialog(context); dialog.setContentView(R.layout.logindialog); dialog.setTitle("Login:"); WindowManager.LayoutParams a = dialog.getWindow().getAttributes(); // dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); a.dimAmount = 0; dialog.getWindow().setAttributes(a); dialog.setCancelable(true); dialog.getWindow().setLayout(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 

а потом

 dialog.show(); 

Я пытался

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

Но это сбой моего приложения.

Вот xml

  <TextView android:id="@+id/LoginText" android:gravity="fill" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login:"> </TextView> <EditText android:id="@+id/LoginEdit" android:layout_height="wrap_content" android:singleLine="true" android:text="jason" android:layout_width="200sp"/> <TextView android:id="@+id/PasswordText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Password:"> </TextView> <EditText android:id="@+id/PasswordEdit" android:layout_height="wrap_content" android:singleLine="true" android:text="welcome" android:layout_width="200sp" android:password="true"/> <LinearLayout android:id="@+id/test2" android:gravity="center_horizontal" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/LoginButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="Login" /> <Button android:id="@+id/CreateButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="Create" /> <Button android:id="@+id/CancelLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="Cancel" /> </LinearLayout>/> 

Solutions Collecting From Web of "Диалоговое окно Android: удаление заголовка"

использовать,

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before dialog.setContentView(R.layout.logindialog); 

Создать новый стиль в styles.xml

 <style name="myDialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> </style> 

Затем добавьте это в свой манифест:

  <activity android:name=".youractivity" android:theme="@style/myDialog"></activity> 

Все выше сказанное не работает для меня для AppCompatDialog

Если вы используете AppCompatDialog, попробуйте это

Важное примечание. Установите это перед вызовом setContentView.

dialog.supportRequestWindowFeature (Window.FEATURE_NO_TITLE);

Вы также можете определить тему в файле манифеста android, чтобы не отображать панель заголовка.

Вы просто определяете тему android:theme="@android:style/Theme.Light.NoTitleBar" в android:theme="@android:style/Theme.Light.NoTitleBar" где вы не хотите отображать строку заголовка

Пример:-

  <uses-sdk android:minSdkVersion="4"android:targetSdkVersion="4" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".splash" android:label="@string/app_name" android:screenOrientation="portrait" android:theme="@android:style/Theme.Light.NoTitleBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="main" android:screenOrientation="portrait" android:theme="@android:style/Theme.Light.NoTitleBar"></activity> 

Создайте свой XML, который показан в диалоговом окне здесь: activity_no_title_dialog

 final Dialog dialog1 = new Dialog(context); dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog1.setContentView(R.layout.activity_no_title_dialog); dialog1.show(); 

Используйте код ниже, чем setcontentview: –

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.custom_dialog); 

Примечание: – над кодом необходимо использовать выше dialog.setContentView(R.layout.custom_dialog);

В XML используется тема

 android:theme="@android:style/Theme.NoTitleBar" 

Также styles.xml:

 <style name="hidetitle" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> </style> 

А потом:

 Dialog dialog_hidetitle_example = new Dialog(context, R.style.hidetitle); 

Я новичок в Android и наткнулся на этот вопрос, пытаясь избавиться от заголовка.

Я использую действие и отображаю его как диалог. Я точил вокруг темы и натолкнулся на полезную битку по умолчанию.

Вот код из моего AndroidManifest.xml который я использовал, когда показывала строку заголовка:

 <activity android:name=".AlertDialog" android:theme="@android:style/Theme.Holo.Dialog" > </activity> 

Вот изменение, которое принесло мне желаемый результат:

 <activity android:name=".AlertDialog" android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" > </activity> 

Как я уже сказал, я по-прежнему новичок в Android, поэтому у этого могут быть нежелательные побочные эффекты, но, похоже, он дал мне результат, который я хотел, который должен был просто удалить строку заголовка из диалогового окна.

Если вы используете пользовательский вид, то помните, чтобы запросить функцию окна перед добавлением вида содержимого, подобного этому

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); dialog.show(); 

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

 Dailog dialog = new Dialog(MyActivity.this, R.style.dialogstyle); <?xml version="1.0" encoding="utf-8"?> <resources> <style name="dialogstyle" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@null</item> <item name="android:windowNoTitle">false</item> </style> </resources> 

Вы можете попробовать эту простую диалоговую всплывающую библиотеку Android . Это очень просто использовать в вашей деятельности.

Когда нажата кнопка отправки, попробуйте выполнить следующий код после включения выше lib в ваш код

 Pop.on(this) .with() .title(R.string.title) //ignore if not needed .icon(R.drawable.icon) //ignore if not needed .cancelable(false) //ignore if not needed .layout(R.layout.custom_pop) .when(new Pop.Yah() { @Override public void clicked(DialogInterface dialog, View view) { Toast.makeText(getBaseContext(), "Yah button clicked", Toast.LENGTH_LONG).show(); } }).show(); 

Добавьте одну линию в свою граду, и вам хорошо идти

 dependencies { compile 'com.vistrav:pop:2.0' }