windowIsFloating
虽然创建 Dialog
样式 UI 的一站式商店有很多
---错误---怪癖。
我现在要解决的问题是将顶部祖先的宽度/高度分配为 "wrap_content
"而不是屏幕的宽度/高度。这意味着通常使用 "match_parents"
的 UI 设计将向上传播成为 "wrap_content"
。糟糕的时期。
所以,我真正想要的是创建一个 Activity ,并拥有这样的布局:
<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>
这会在调用它的 Activity 上生成一个显示单个窗口 (@id/singlePane) 的 UI。
是否有人拥有恰到好处的样式集来创建透明背景 Activity ?
最佳答案
感谢@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>
此样式必须分配给 AndroidManifest.xml
中的 Activity
而不是布局的 Root View 。
关于android - 如何创建没有 windowIsFloating 的透明 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888263/