Android獨立於Activity或者Fragment的LoadingDialog的實現

public class LoadDialogMgr { private static final String LOAD_TIP_DIALOG_TAG = "LoadTipDialog"; private static LoadDialogMgr sMLoadDialogMgr; private LoadDialogMgr() { } public static LoadDialogMgr instance() { if (sMLoadDialogMgr == null) { sMLoadDialogMgr = new LoadDialogMgr(); } return sMLoadDialogMgr; } public void showDialog(FragmentActivity activity) { FragmentManager manager = activity.getSupportFragmentManager(); LoadTipDialog loadTipDialog; Fragment fragment = manager.findFragmentByTag(LOAD_TIP_DIALOG_TAG); if (fragment instanceof LoadTipDialog) { loadTipDialog = (LoadTipDialog) fragment; } else { loadTipDialog = LoadTipDialog.newInstance(); } if (loadTipDialog.isAdded()) { return; } manager.beginTransaction() .remove(loadTipDialog) .add(loadTipDialog, LOAD_TIP_DIALOG_TAG) .commitAllowingStateLoss(); } public void closeDialog(FragmentActivity activity) { FragmentManager manager = activity.getSupportFragmentManager(); LoadTipDialog loadTipDialog; Fragment fragment = manager.findFragmentByTag(LOAD_TIP_DIALOG_TAG); if (fragment instanceof LoadTipDialog) { loadTipDialog = (LoadTipDialog) fragment; loadTipDialog.dismissAllowingStateLoss(); } } public void showDialog() { Activity activity = ActivityUtil.getTopActivity(); if (activity instanceof FragmentActivity) { showDialog((FragmentActivity) activity); } } public void closeDialog() { Activity activity = ActivityUtil.getTopActivity(); if (activity instanceof FragmentActivity) { closeDialog((FragmentActivity) activity); } } }

public class LoadTipDialog extends AppCompatDialogFragment {

private View mRootView;

public static LoadTipDialog newInstance() {
Bundle args = new Bundle();
LoadTipDialog fragment = new LoadTipDialog();
fragment.setArguments(args);
return fragment;
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
mRootView = inflater.inflate(R.layout.dialog_load_tip, container, false);
return mRootView;
}
}
 
  
//R.layout.dialog_load_tip<?xml version="1.0> encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_gravity="center"  android:padding="15dp"  android:background="#999999"  android:gravity="center"  android:orientation="vertical">  <ProgressBar    android:id="@+id/progress_bar"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/>  <TextView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:paddingTop="10dp"    android:text="   loading..."    android:textColor="@color/black"    android:textSize="16sp"/></LinearLayout>
相關文章
相關標籤/搜索