• 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>
     
  • 相关阅读:
    ubuntu部分端口命令的使用----开启端口/开启防火墙
    ElasticSearch 5.0及head插件安装
    维基百科语料中的词语相似度探索
    Mac下多版本JDK安装
    Mac OS 终端利器 iTerm2
    android mat 转 bitmap
    simHash 简介以及 java 实现
    Python数据可视化之matplotlib实践 源码 第二篇 精进 第六章
    Python数据可视化之matplotlib实践 源码 第二篇 精进 第五章
    Python数据可视化之matplotlib实践 源码 第一篇 入门 第四章
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/10458438.html
Copyright © 2020-2023  润新知