如何使用windowIsFloating创建透明活动

Gra*_*eme 18 android android-layout

windowIsFloating虽然一个伟大的一站式商店创建Dialog风格的UI有许多---错误---怪癖.

我现在正在努力的是它将顶部祖先的宽度/高度指定为"wrap_content"而不是屏幕的宽度/高度.这意味着使用的常用UI设计"match_parents"将向上传播成为"wrap_content".糟糕的时间.

所以,我真正想要的是创建一个活动,并有一个像这样的布局:

<LinearLayout   android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:orientation="vertical"
                android:id="@+id/containerPageConatiner"
                android:background="@drawable/windowBackground">
    <View           android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"/>
    <FrameLayout    android:id="@+id/singlePane"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:padding="10dp"/>    
    <View           android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"/>                         
</LinearLayout> 
Run Code Online (Sandbox Code Playgroud)

这会生成一个UI,显示调用它的Activity上的单个窗口(@ id/singlePane).

有没有人拥有创建透明背景活动所需的恰当样式?

Gra*_*eme 30

感谢@PolamReddy,我想要回答我的想法:

主题Theme.Translucent.NoTitleBar.Fullscreen及其祖先包含创建半透明窗口所需的所有属性.为了得到一切,windowIsFloating我通过祖先堆栈并拉出了整个属性集:

<style name="Theme.CustomTheme.TransparentActivity">
    <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> 
Run Code Online (Sandbox Code Playgroud)

这种风格必须分配到ActivityAndroidManifest.xml,而不是一个布局的根视图.


Raj*_*ddy 8

在清单文件中使用这样的活动(主题代表该活动的透明度.)

<activity android:name=".Settings"      
          android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
Run Code Online (Sandbox Code Playgroud)