Frage

Mein Ziel ist es, eine modale Ansicht in meiner Android -Anwendung festzulegen. Ich möchte eine Ansicht öffnen, deren Hintergrund transparent sein würde, damit der Benutzer die Ansicht dahinter sehen kann.

  1. Ich habe von transparenter Aktivitäten gehört, aber dies könnte die Aktivität dahinter einfrieren, nicht wahr?
  2. Ich hätte gerne eine Art wiederverwendbares Zeug, da diese Ansicht mehr als eine Aktivität einrufen wird.

Vielen Dank

War es hilfreich?

Lösung

Mit diesem Stil können Sie einen Aktivitätenhintergrund transparent machen:

<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>   

Im Manifest so deklariert wie so:

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

Ich benutze dies dann als Layout für meinen Dialog:

<?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> 

Sie können entweder andere Layouts aufblasen und es hinzufügen @+id/dialog oder verwenden Sie Fragmente (je nachdem, wie mutig Sie sind).

Hoffe das hat geholfen!

Andere Tipps

Vielleicht könnten Sie eine verwenden Dialog? Sie können eine benutzerdefinierte Inhaltsansicht verwenden, um das anzuzeigen, was Sie wollen, und verwenden setCancelable(false).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top