我有一个非常好的对话框,可以满足我的需求。但我需要将其更新为新标准。
这是我当前的对话框:
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();
}
}
我已将此非片段对话框与Fragments和ListFragments(使用支持库4)一起用作ProgressDialogs。不幸的是,在具有多个片段的页面上,它们只是叠加在一起。所以我想将每个对话框与每个片段相关联。
我在每个onPreExecute()
的{{1}}中以这种方式调用对话框:
Task
是否可以根据需要调整当前设置,或者我是否需要从头开始完全重做?我查看了谷歌的所有样本,我发现甚至看不到我正在做的事情。我可以在这个转变中获得一些指导吗?无论是链接,代码示例还是研究想法?
编辑以回应以下评论:
dialog = new MyProgressDialog(getActivity());
平板电脑布局:
@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;
}
答案 0 :(得分:1)
所以我想将每个对话框与每个片段相关联。
如果要在触发工作的相应片段上方显示对话框,则无法使用DialogFragment
,因为这会将对话框设置为普通对话框。
相反,您可以像使用自定义Fragment
一样使用普通ProgressDialog
形并将其附加到容器(应该是RelativeLayout
或{{1在正常片段/内容之上。
是否可以根据需要调整当前设置,或者我可以 需要从头开始完全重做这个吗?
如果那些包含多个片段的页面将这些片段放在包装器布局中,那么它非常简单。如果不是,您将需要进行一些简单或非常难以进行的更改,具体取决于您构建当前布局的方式。