2012-03-05 40 views
0

我有一个相当微不足道的问题,但我认为我会给它一个镜头。我正在编写一个android应用程序,并且我有一个从web服务器加载的viewgroup表单。当互联网访问正在运行时,我用弹出一个带进度条的对话框。我决定,如果我将它转换到标题栏中不错的小型不确定进度条上,看起来会不那么笨拙。使残疾人视图组看起来更具审美性

除了表单项(文本视图,按钮等)在检索过程中全部启用,标题栏选项看起来不那么繁忙。然后,我使用递归例程来禁用视图组中的所有视图,但这又看起来很丑陋 - 灰色文本视图(2.3.3)看起来很粗糙,特别是焦点与周围的橙色栏相关。如果我弹出一个进度条,底层视图看起来很好地禁用 - 后面的窗口只是慢慢变暗。从视觉角度来看,更明显的是,当整个窗口变暗而不是面对一堆禁用的控件时,我们正在等待发生的事情。

是否有一个呼叫我可以使操作系统在进度条或其他窗口重叠在顶部时以类似的方式禁用视图?这会给我两全其美。

我猜另一个选择是在访问期间将视图设置为隐形,但我很好奇,因为我可以看到操作系统正在做我想要的东西,当我使用弹出窗口。

回答

0

我想出了如何使用相对布局来进行此操作,其中进度对话框包裹在与主视图重叠的框架布局中。当我的网络获得时,我将背景设置为半透明的框架布局的可见性设置为可见,并禁用底层视图中的控件。工作得很好。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
    <ScrollView 
    android:id="@+id/itemView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
    </ScrollView> 

    <FrameLayout 
    android:id="@+id/itemProgress" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#55000000" 
    android:visibility="gone" 
    > 
    <ProgressBar 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_gravity="center|center_vertical" 
    android:indeterminateOnly="true" 
    /> 
    </FrameLayout> 
</RelativeLayout>