0

我有一个非常好的对话框,可以满足我的需要。但我需要将其更新为新标准。

这是我当前的对话框:

public class MyProgressDialog extends Dialog {

    private MyProgressDialog dialog;

    public MyProgressDialog(Context context) {
        super(context);
    }

    public MyProgressDialog show(Context context) {
        dialog = new MyProgressDialog(context);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.progress);
        dialog.getWindow().setBackgroundDrawableResource(
                android.R.color.transparent);
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
        return dialog;
    }

    public void dismiss(Context context) {

        dialog.dismiss();

    }

}

我已经将这个 NON-Fragment Dialog 与 Fragments 和 ListFragments(使用支持库 4)一起用作 ProgressDialogs。不幸的是,在具有多个片段的页面上,它们只是堆叠在一起。所以我想将每个对话框与每个片段相关联。

onPreExecute()我在每个Task's中以这种方式调用对话框:

dialog = new MyProgressDialog(getActivity());

是否可以调整我当前的设置以根据需要工作,或者我是否需要从头开始完全重做?我查看了来自 Google 的所有样本,但我找不到很多与我正在做的事情相近的东西。我可以在这次过渡中获得一些指导吗?无论是链接、代码示例还是要研究的想法?

编辑以回应以下评论:

@Override
public Fragment getItem(int position) {
    Fragment f = null;
    switch (position) {
    case 0: {
        f = new RateFragment();
        Bundle args = new Bundle();
        f.setArguments(args);
        break;
    }
    case 1: {
        f = new ReviewFragment();
        Bundle args = new Bundle();

        f.setArguments(args);
        break;
    }
    default:
        throw new IllegalArgumentException("not this many fragments: "
                + position);
    }

    return f;

}

平板电脑布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frags"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <fragment
        android:id="@+id/cat_frag"
        android:layout_width="450dp"
        android:layout_height="match_parent"
        class="com.---.---.RateFragmentActivity$RateFragment" />

    <LinearLayout
        android:layout_width="4dp"
        android:layout_height="match_parent"
        android:background="#222" />

    <fragment
        android:id="@+id/featured_frag"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.---.---.RateFragmentActivity$ReviewFragment" />

</LinearLayout>
4

1 回答 1

1

所以我想将每个对话框与每个片段相关联。

如果要在触发工作的相应片段上方显示对话框,则不能使用 a DialogFragment,因为这会将对话框放置为普通对话框。

相反,您可以使用与您的自定义Fragment 形状ProgressDialog相似的法线并将其附加到容器(应该是 aRelativeLayoutFrameLayout)上的正常片段/内容之上。

是否可以调整我当前的设置以根据需要工作,或者我是否需要从头开始完全重做?

如果那些具有多个片段的页面将这些片段放置在包装器布局中,那么这很容易。如果不是,您将需要根据您构建当前布局的方式进行一些可能容易或很难进行的更改。

于 2013-01-27T17:00:58.133 回答