禁用android中的后台活动

时间:2014-06-11 11:35:59

标签: android android-layout android-fragments android-activity transparency

我目前有一个显示gridView的活动。当按下一个特定的按钮时,我创建了一个具有透明内容视图的新片段,以便它覆盖活动gridView,所以基本上你看到了新片段的内容,同时仍然模糊地看到背景中的gridView。我遇到的问题是背景视图(gridView)仍处于活动状态,用户可以按下“通过”片段视图的按钮并进入gridView,如果这有意义的话。如何禁用后台视图/活动(gridView),以便用户无法激活它托管的任何内容?我以为我可以按照以下几点做一些事情,但看起来非常低效和黑客:

ViewGroup vg = (ViewGroup) v;
    for (int i = 0;i<vg.getChildCount();i++) {
        enableViews(vg.getChildAt(i), enabled);
    }

我可以采取其他任何解决方案或方法吗?

我通过以下样式设置整个片段视图的透明度:

<style name="Transparent" parent="@android:style/Theme.NoTitleBar">
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:background">#e6000000</item>
</style>

1 个答案:

答案 0 :(得分:0)

不确定为什么这个问题被投票,因为我觉得这是一个合理的问题,也许我的措词是坏的或者其他什么。无论如何,我找到了一个解决方案,其他任何人都遇到了类似的情况。您需要做的就是将覆盖屏幕根布局可点击属性设置为true :(在此特定情况下,片段主要布局)

android:clickable="true"