Достижение функции модального просмотра в Android

StackOverflow https://stackoverflow.com/questions/8312095

Вопрос

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

  1. Я слышал об использовании прозрачной деятельности, но это может заморозить активность, не так ли?
  2. Я хотел бы каких -то многоразовых материалов, так как эта точка зрения позвонит в более чем одно действие.

Спасибо

Это было полезно?

Решение

Вы можете сделать занятие прозрачным, используя этот стиль:

<style name="TransparentActivity" parent="android:Theme.Black.NoTitleBar.Fullscreen">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowFullscreen">true</item>
</style>   

Объявлено в манифесте, как так:

    <activity
        android:label="@string/app_name"
        android:name=".activity.DialogActivity"
        android:theme="@style/TransparentActivity" >

Затем я использую это в качестве макета для моего диалога:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout    xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:id="@+id/containerPageContainer">

    <FrameLayout    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:background="@drawable/panel_picture_frame_bg_focus_blue"
                    android:layout_gravity="center"
                    android:id="@+id/dialog"/>


</FrameLayout> 

Вы можете либо раздуть другие макеты и добавить их в @+id/dialog Или используйте фрагменты (в зависимости от того, насколько вы смелые).

Надеюсь, это помогло!

Другие советы

Возможно, вы могли бы использовать Dialog? Вы можете использовать пользовательский вид контента, чтобы отобразить все, что вы хотите, и использовать setCancelable(false).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top