У меня есть активность, whereActity
которая также имеет дочерние диалоги. Теперь я хочу отобразить это действие в качестве диалога для другого действия.
Как я могу это сделать?
У меня есть активность, whereActity
которая также имеет дочерние диалоги. Теперь я хочу отобразить это действие в качестве диалога для другого действия.
Как я могу это сделать?
Ответы:
Чтобы начать деятельность как диалог, я определил это так
AndroidManifest.xml
:Используйте это свойство внутри вашего
activity
тега, чтобы диалоговое окно не отображалось в списке недавно использованных приложений.Если вы хотите предотвратить уничтожение вашего диалога / действия, когда пользователь щелкает за пределами диалогового окна:
После
setContentView()
в вашемActivity
использовании:this.setFinishOnTouchOutside(false);
Теперь, когда я звоню,
startActivity()
он отображается в виде диалога с предыдущим действием, отображаемым, когда пользователь нажимает кнопку «Назад».Обратите внимание, что если вы используете
ActionBarActivity
(или тему AppCompat), вам нужно использовать@style/Theme.AppCompat.Dialog
вместо этого.источник
@style/Theme.AppCompat.Dialog
this.setFinishOnTouchOutside(false);
after,setContentView()
чтобы предотвратить разрушение действия при щелчке вне диалогового окна, которое вы создали.Используйте этот код, чтобы диалоговое действие не было закрыто, когда пользователь касается внешнего вида диалогового окна:
требуется уровень API 11
источник
Вы можете определить этот стиль в values / styles.xml, чтобы выполнить более прежний Splash:
И используйте его AndroidManifest.xml:
источник
@drawable/trans
: вы должны быть в состоянии использовать то,@android:color/transparent
что создастColorDrawable
для использования в качестве фона.<item name="windowNoTitle">true</item>
(без «андроида»). Смотрите здесь . Не уверен насчет других предметов.1 - Вы можете использовать те же действия, что и в диалоговом режиме, так и в полноэкранном режиме, динамически:
Звоните
setTheme(android.R.style.Theme_Dialog)
перед звонкомsetContentView(...)
иsuper.oncreate()
в своей Активности.2 - Если вы не планируете менять стиль темы деятельности, вы можете использовать
(как упомянуто @faisal khan)
источник
<activity android:theme="@android:style/Theme.Dialog" />
) и программно установите тему действия на диалог или действие в onCreate stackoverflow.com/a/35915764/2898715Если вам нужна версия Appcompat
style.xml
yourmanifest.xml
источник
<item name="windowNoTitle">true</item>
чтобы это работало на меня. Я также добавил<item name="android:windowActionBar">false</item>
для хорошей меры.<item name="android:windowNoTitle">true</item>
не сработало (Android 5.0.1), и мне пришлось сменить на<item name="windowNoTitle">true</item>
Если ваша деятельность отображается в виде диалога, просто добавьте кнопку в XML своей активности,
Затем присоедините прослушиватель щелчков к Java-коду вашей деятельности. В слушателе просто позвоните
finish()
Это должно закрыть ваш диалог, вернув вас к вызывающей деятельности.
источник
Если вы хотите удалить заголовок действия и предоставить настраиваемое представление для диалогового окна, добавьте следующее в блок действия вашего манифеста
и создайте свой Activity_layout с желаемым видом
источник
Установите тему в своем файле манифеста Android.
И установите состояние диалога на ощупь, чтобы закончить.
источник
Создайте активность как диалог, вот полный пример
AndroidManife.xml
<activity android:name=".appview.settings.view.DialogActivity" android:excludeFromRecents="true" android:theme="@style/Theme.AppCompat.Dialog"/>
DialogActivity.kt
activity_dialog.xml
источник
Несколько раз вы можете получить Исключение, которое дано ниже
Причина: java.lang.IllegalStateException: Вам нужно использовать тему Theme.AppCompat (или потомок) с этим действием.
Таким образом, для решения вы можете использовать простое решение
добавить тему вашей деятельности в манифесте в качестве диалога для appCompact.
Это может быть полезно для кого-то.
источник