如何在弹出对话框周围自定义半透明区域的外观?也就是说,显示潜在活动的区域。
正在使用
启动弹出活动Intent intent = new Intent (app, MyPopup.class);
app.startActivityForResult (intent, requestCode);
其中app是当前活动。
XML文件的顶层是ScrollView。我已尝试在那里设置背景,但忽略该设置。同样,我已经尝试调整边距,但也会忽略这些边距。 (注意 - 我现在意识到边距仅适用于LinearLayout;请忽略该问题。)例如:
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp"
android:maxWidth="200dp" >
在上面,忽略margin和maxWidth。
而且,我尝试过设置自定义样式:
<style name="PopupTheme" parent="android:style/Theme.Dialog">
<item name="android:background">#FFF2F2F2</item>
<item name="android:textColor">#FF000000</item>
<item name="android:windowNoTitle">true</item>"
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowBackground">@drawable/dialog_background</item>
</style>
在这种风格中,backgroundDimEnabled确实有所作为 - 它允许原始活动以全亮度显示。但是其他属性似乎被忽略了。我尝试过这么多设置没有任何影响的事实让我相信,我要么缺少一些重要的“lynch pin”设置,要么谷歌硬编码过多的行为让这些设置起作用。
我可以在我的所有弹出窗口中添加另一个图层,其中图层是全屏的,并按照我想要的方式进行半透明,将真正的对话框置于其上。如果有正确的方法可以做我想做的事情,我宁愿不做一个解决方法。
感谢。
答案 0 :(得分:0)
ScrollView存在问题,因为它从FrameLayout扩展,因此您无法对其应用边距。我可以做的是在ScrollView中创建一个LinearLayout并将边距应用于它。
类似的东西:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginTop="30dp"
android:orientation="vertical" >
</ScrollView>