0

目前,当我显示 a 时ProgressDialog,它会占据包括选项卡在内的整个屏幕,如下所示:

在此处输入图像描述

这是否可能仅涵盖活动并保留选项卡功能?理想情况下,它会像这样显示,以便我可以单击按钮以离开加载不同的活动,而不是等待当前活动完成加载:

在此处输入图像描述

这可能吗?我应该采取另一种方法来实现这个结果吗?

4

2 回答 2

0

我觉得ProgressDialog在这种情况下使用 不是最合适的选择。阻塞整个窗口以指示用户此时不能执行任何操作是对话框的逻辑。

如果您想显示活动某些部分的进度,您应该使用 aProgressBar代替。如果您希望外观像一个进度对话框,那么使用可以自定义ProgressBar(看起来像进度对话框),并动态附加/删除或更改可见性以显示或隐藏它。

我想你也可以看看这个:https ://stackoverflow.com/a/18553879/827110

(我假设您正在寻找一个概念性的答案,即找到实现这种行为的最合适的方法)

于 2013-10-04T09:01:32.920 回答
0

扩展您进行自定义的进度对话框类

公共类 CustomProgressDialogClass 扩展 ProgressDialog{

public CustomProgressDialogClass(Context context) {
    super(context, R.style.CustomDialogThemeForPorgressbar);
    // TODO Auto-generated constructor stub

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.progress_layout);
}

} 在布局progress_layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:id="@+id/progressbar_layout">

<RelativeLayout
   android:id="@+id/relativeLayout1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:gravity="center"
   android:background="@drawable/loader_bg"  >

   <ProgressBar
        android:id="@+id/progressbarlayout_progressbar"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

在值文件夹中创建样式文件夹并将其粘贴

<style name="CustomDialogThemeForPorgressbar" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:gravity">center</item>
</style>

对 windowIsFloating、gravity 和 windowNoTitle 进行更改以显示在选项卡主机中

于 2013-10-04T08:50:46.733 回答