Раньше я пытался бороться с превращением фона деятельности в прозрачный. Я бы правильно установил фон макета #00000000
, и я бы правильно установил getWindow().setBackgroundDrawable(new ColorDrawable(0))
в методе onCreate. Однако, с этими двумя изменениями, я всегда получал бы серовато-черный контейнер, держащий мой макет. Но затем я обнаружил, что мне нужно было отредактировать тег активности в манифесте, чтобы добавить android:theme="@android:style/Theme.Holo.Dialog"
. Вуаля! Это все.Дайте AlertDialog пользовательский или прозрачный фон
Но теперь мне нужно превратить фон AlertDialog в прозрачный. Есть ряд предложений, и я попробовал немало. Моя последняя конфигурация приведена ниже. Но у меня всегда была та же проблема, с которой я работал: серовато-черный контейнер, держащий мой макет. Итак, теперь мой вопрос: как добавить android:theme="@android:style/Theme.Holo.Dialog"
в файл манифеста для моего настраиваемого диалога?
Текущий код:
public void showMyDialog() {
ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.CustomDialog);
AlertDialog.Builder builder = new AlertDialog.Builder(ctw);
LayoutInflater inflater = (LayoutInflater) ctw.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.dialog_layout,
(ViewGroup) findViewById(R.id.pr_root));
builder.setView(view);
builder.show();
}
Стиль:
<style name="CustomDialog" parent="android:Theme.Holo.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:alertDialogStyle">@style/CustomDialog</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
Конечно dialog_layout
типичный макет .xml
файл.
Так что этот вид работ. Он вытащил серовато-черный фон. Но есть одна проблема. Теперь мой диалог имеет синий/голубой бар наверху. Как удалить эту панель? –
Используйте 'builder.getWindow(). RequestFeature (Window.FEATURE_NO_TITLE);' –
Диалоги не очень хорошо сочетаются с панелью контекстных действий, к сожалению, и смещаются. Мне потребовалось некоторое время, чтобы найти, что Диалог был виновником. – Saket